@database Wildfire @$VER: Wildfire.guide V2.82 @node Main "Wildfire Documentation" ################################################################# # # # Wildfire - an Animation-System for the Amiga # # # # Copyright 1995-1997 WK-Artworks # # All rights reserved # # Unauthorized Duplication Prohibited # #---------------------------------------------------------------# # # # Documentation # # # ################################################################# @{" 0. Amiga-Magazin CD Workshop " link Workshop.guide/MAIN} @{" 1. Introduction " link introduction} @{" 2. System Requirements " link requirements} @{" 3. Installation " link installation} @{" 4. Usage " link Usage} @{" 5. Documentation " link MainWindow} @{" 6. PowerPlugs! " link PowerPlugs!} @{" 7. YAFA " link yp.guide/MAIN} @{" 8. ARexx " link ARexx} @{" 9. Known Bugs " link Bugs} @{" 10. Authors " link Authors} @{" 11. Copyright " link Copyright} @{" 12. Developer-Information " link Developer} @{" 13. FAQ " link FAQ} @{" 14. Shareware " link Shareware} @{" 15. Tutorials " link Tutorials} @{" 16. Wildfire Demos " link Demos} Documentation-Authors : Andreas K ssner, Andreas Maschke Last Changes : Sunday 02-Mar-97 Version : 2.82 @endnode @remark TODO: @remark -Tutorials @remark -Developer-kit @node Introduction --------------------------------------------------------------------- Wildfire - where dreams become virtuality A Special Effect Program and many more --------------------------------------------------------------------- @{ub} Wildfire is not only another brandnew image-processing-program - it's a professional animation-processor with some really new concepts. It allows you for example the creation and processing of animations in several formats, the generation of time-dependant special-effects and the design of large projects containing several animations and frame-synchronized sound-effects. Because the common animation-formats on the Amiga have too many lacks or restrictions we have tried to create a better one: YAFA. This animation-format for example features many compression-methods and realtime-zooming. One of the outstanding features of Wildfire is the fact that it makes for you no difference if you apply changes to a whole animation or if you process only one image. A single image is only a very special case of an animation. In contrary to common image-processors you can use envelopes instead of plain numbers as effect-parameters. This makes the easy creation of time-dependant special-effects possible. So you haven't to fight against the "do"-loops in an ARexx-script to get an animation outside your image-processor anymore. All of the numerous effects can be arranged in any number and combination. Because the output of any of these effects can be one of the 8 tempory-buffers Wildfire allows you to PROGRAM IMAGES in an comfortable way ! Main Features: -fast and comfortable Converter: input: YAFA, ANIM5/7/8, mpeg, image-sequences output: YAFA, ANIM5/7/8, image-sequences -Preview for almost any operation -Project-Editor which allows the creation of large and complicated projects easily using the mouse -Effect-Generator featuring time-dependant parameters via envelopes -a stunning library of effect-PlugIns -some really new effects, real 3D-effects, lightsources -superposition of 3D-effects (PowerPlugs!) -(un)loading of PlugIns at any time -Envelope-Editor -Timecodes-Editor -Transition-Maker for easy creation of transitions between two animations -easy-to-use Player-interface -Filmstrips to simplify the perfect timimg of huge projects -AnimInfo-function displaying size-profiles etc. -fontsensitive GUI without MUI -internal gadget-toolbox which handles mathematical expressions instead of only plain numbers -calculator which allows for example the export of user-defined symbols to the gadgets in the whole-program -Drag&Go (using drag.gadget 0.2 Copyright 1996 J rg Kollmann, see bonus drawer!) -ARexx-port with about 400 commands -macros, custom-windows, docks -import of images from other programs -Developer-Kit (with working example) which allows you to create your own effect-PlugIns -and many more @endnode @node Requirements @{b}Requirements@{ub} @{u}Hardware@{uu} -Processor: 68020 -Graphics : AGA or gfx-board (The program may work with ECS but this is not recommended) -Memory : FastRAM is strongly recommended but actually not required Most of the effects (even transitions between two animations!) run on an standard 2 MB A1200! @{u}Software@{uu} -operation system V39 (3.0) -XPK compression system (xpkFAST recommended) The program was successfully tested on A1200 (030, 060) and A4000 (030, 040) with several disk and memory configurations. @endnode @node Installation @{b}Installation@{ub} Normally the installation is done by executing the supplied installer-script. If this doesn't work (sometimes the installer-program hangs up on my system) the installation can be done by hand easily. Just move all files extracted from the "Wildfire-Main"-archieve into one drawer, e.g. into a drawer called "Wildfire". After that locate the file "Wildfire.config" and move into "envarc:". That's it. @{b}File-Hierarchy@{ub} Wildfire +---system -private files | +---plugIns *PlugIns-rootdrawer | | +---operators operators for the processor | | +---general general PlugIns | | +---system preferences for all types of PlugIns | | \---savers savers and loaders | +---images *icons for the icon-manager | +---filmstrips *filmstrips for the Transition-Maker | \---help *some text-files +---alpha -alpha-images +---trash -temporary files +---expressions -expressions and symbols for the calculator +---profiles -size-profiles of animations +---YAFAOptions -YAFA-Compressor-settings +---annotations -annotations and text-files +---convolutions -matrix-settings for the Convolve-PlugIn +---doc -documentation and online-help-files +---envelopes -envelopes for the Processor +---filmstrips -Filmstrips +---images -Images +---macros -ARexx-Macros +---processes -Processor-scripts +---projects -Video-projects +---sessions -Converter-sessions +---variables -Variables for the Processor \---windows -Custom-windows @endnode @node Bugs @{b}Known bugs@{ub} -Sometimes the program may crash if you run out of memory -3D-operators: Sometimes the program hangs up if the camZ-value is smaller than the image-dimension. Such small values cause impressive views at some rotation- angles so no range-checking is done. @endnode @node Authors @{b}Wildfire, Parts of the YAFA-concept, Animations@{ub} Andreas Maschke (WK-Artworks) Zenkerstra 06108 Halle/Saale Germany EMail: epgbc@cluster1.urz.Uni-Halle.DE @{b}Player, YAFA-concept, Ideas@{ub} Michael Henke (Smack/Infect) Praetoriusstr. 1/205 06124 Halle/Saale Germany EMail: epgbd@cluster1.urz.Uni-Halle.DE @{b}Ideas, Documentation, Moral Support, Beta-Testing:@{ub} Andreas K ssner Bernard Krone Str. 15 48480 Spelle Germany Tel.: ++49(0)5977/939249 @endnode @node Copyright @{b}Copyright@{ub} The program WF is Copyright (c) 1996-97 WK-Artworks (Andreas Maschke). All rights reserved. Commercial use is prohibited, if you want to use it for commercial purposes you have to get an explicit permission from the @{"author" link Authors} first. Wildfire is released as @{" Shareware " link shareware}. There are two different versions: @{u}Unregistered Demo-Version:@{uu} It is allowed to charge a fee to recover distribution costs, but no profit may be made by selling or otherwise distributing the program. It is not allowed to distribute only parts of the package or a modified program. @{u}Regisered Version:@{uu} The unregistered version is turned into a registered one if you use a personalized key file that registered users receive from me. It's strictly forbidden to give the registered key file to other users ! Giving the key file to other users, using key files that you did not receive directly from me for your personal use is considered as an act of software piracy ! It is not allowed to disassemble or otherwise reverse engineer any part of one of the Wildfire-related programs. @{b}Disclaimer@{ub} No guarantee is given nor implied that this program is fit for any use. The program and the information within this text are provided on "AS-IS" basis. The entire risk as to its quality and performance is with the user. In no event will the author be liable for direct, indirect, incidental or consequential damages resulting from any defect in the program. The author reserves the right to make changes to the program or the documentation without notice. @endnode @node shareware @{b}Shareware@{ub} Because the demoversion has all features of the full version you can test everything before you decide to buy the program. The only restriction of the demoversion is the fact that all dynamically alloceated memory will be stored until you quit the program. This way gives you the possibibily to test all program-features before registering. The price for the full version of WildFire is 50,00 DM or 40,00 US-$. Just compare WildFire to other programs yourself and you will know what to do ... The price for @{" PowerPlugs!" link PowerPlugs!} is the same. If you already got registered for Wildfire and want to obtain PowerPlugs! separately you have to specify your serial-number which may be obtained from the @{" Info-Window " link InfoWindow} of the program. There are two possibilities to buy Wildfire and/or PowerPlugs!. @{b}1.@{ub} Send the money in a letter to: Andreas K ssner Bernard Krone Str. 15 48480 Spelle Germany Please write down your full NAME and ADDRESS and the COMPUTERTYPE you use. You`ll get the latest WildFire Version and your personal wildfire.library. Please write down where you got the Demo-Version from. @{b}2.@{ub} Send a letter to: Andreas K ssner Bernard Krone Str. 15 48480 Spelle Germany Please write down your full NAME and ADDRESS and COMPUTERTYPE you use. You`ll get the latest WildFire Version and your personal wildfire.library. Please write down where you got the Demo-Version from. Transfer the money to the following account: Bank : HYPO-BANK Halle/Saale BLZ : 8602 0880 KTO : 5100 1479 14 Owner : Andreas Maschke Please write as usage: Wildfire Registration Send your transfer-receipt inside the letter to A. K ssner. -------------------------- cut -------------------------- WildFire registration Name: ____________________________ Street: ____________________________ City: ____________________________ Country: ____________________________ Ser: ____________________________ Computertype: Amiga _________ OS-Version: _______________ Processor: 68___ ___ MHZ Coprocessor: _____ ___ MHZ Memory: ____ MB Fast ____ MB Chip HD-Space: ____ MB Zip/Syquest: ____ which type? _____________________ CD-ROM: ____ x speed Where did you got the demo version from? _______________________ Wildfire registration fee: 50,00 DM ____ or 40,00 US-$ ____ included in letter. ____ (yes/no) PowerPlugs! registration fee: 50,00 DM ____ or 40,00 US-$ ____ included in letter. ____ (yes/no) Money transferred to ____ (yes/no) Bank: HYPO-BANK Halle/Saale BLZ: 8602 0880 KTO: 5100 1479 14 Owner: Andreas Maschke please write as usage: Wildfire Registration Send your transfer-receipt inside the letter to A. K ssner! -------------------------- cut ------------------------------------ @endnode @node Usage @{b}Usage@{ub} The program can be directly started from the Workbench or by typing "wf [options]" in a shell-window. Most operations can be done both using the mouse and the keybord. There are no menus because the AGA-hardware is too slow to render pulldown-menus on a screen with 32 or more colors. But 16...64 colors are recommended using the preview-function which is one of the major features of the program. The other reason is the fact that Wildfire has too many functions to put them into menus without a very complex hierarchy. @{b}Options@{ub} -h : exit the program after displaying some informations -debug : turn on debug-output @endnode @remark /*************************************************************/ @remark /* @remark Main @remark */ @remark /*************************************************************/ @node MainWindow @{b}The Main-Window@{ub} After initialization Wildfire opens it's Main-Window on a screen of your choice. All major program parts like the Processor or the Preferences-Editor can be reached from within this Window. Because Wildfire has a lot of functions and windows there is a window-hierarchy. E.g., after closing the Converter-Window all subwindows like the PictureList-Window or the YAFAAnimOptions-Window are closed automatically. Because the Main-Window is on top of the hierarchy you can quit the program by closing it. Another function of the Main-Window is to act as an icon-manager like Workbench. For almost all files affected by the program like animations, envelopes, images, ... an icon is created automatically and placed on the Icon Area. After moving such an icon into another window a filetype-specific operation is performed. @{b}Functions:@{ub} @{" Converter " link ConverterWindow} @{" Projects " link ProjectsWindow} @{" Processor " link ProcessorWindow} @{" Player " link PlayerWindow} @{" TMaker " link TMakerWindow} @{" Preferences " link PreferencesWindow} @{" PlugIns " link PlugInsWindow} @{" Icon Area " link IconArea} @{" Icons " link IconsWindow} @{" DWA " link DWAWindow} @{" Log " link LogWindow} @{" Info " link InfoWindow} @{" Quit " QUIT} @{" Add " link IconFunctions} @{" Cleanup " link IconFunctions} @{" Reset " link IconFunctions} @{" Load " link IconFunctions} @{" Save " link IconFunctions} @endnode @node IconArea @{b}Icon Area@{ub} The Icon Area of the Main Window acts as a desktop. You can place, move or put files on it. There are four special icons which are initialized at startup automatically. If you drop a file-icon over one of these icons a filetype-specific operation is performed. Trashcan: To delete icons and files. The default is to delete the icons only. This behaviour can be changed from within the @{"Icons-Window" link IconsWindow}. Player: To play animations. Viewer: To display images. Editor: To edit or view textfiles. The external programs envoked can be specified from within the @{" Preferences-Window" link PreferencesWindow}. On the bottom of the Main-Window there some addional functions which deal with icons: @{" Add " link IconFunctions} @{" Cleanup " link IconFunctions} @{" Reset " IconFunctions} @{" Load " link IconFunctions} @{" Save " link IconFunctions} @endnode @node IconFunctions @{b}Add@{ub} Using this function you can put one or more external files on the desktop. For example you could select 20 images to drop them sequentially over the Viewer-icon and delete the ugly ones. @{b}Cleanup@{ub} After pressing this button the Icon Area is cleanup up. @{b}Reset@{ub} This function removes all file-icons from the desktop and puts the four special icons on it. @{b}Load@{ub} The Load-function restores a previous saved desktop. To make this operation as simple as possible a default filename is used. This filename can be changed from within the @{" Icons-Window " link IconsWindow}. @{b}Save@{ub} This saves the contents of the whole desktop as the file specified in the @{" Icons-Window " link IconsWindow}. @endnode @remark /*************************************************************/ @remark /* @remark Converter @remark */ @remark /*************************************************************/ @node ConverterWindow @{b}Introduction@{ub} The Converter is the program part which has to do the most hard jobs. It reads in a stream of data, performs some or many special effects on it and writes the results to harddisk. Unlike to common programs there is only a small difference for the user to perform easy or very complex operations. Example: 1. You want to convert a mpeg-animation into an IFF-Animation. This is easy. Selected the input- and the output-file, adjust the compression-parameters and press the "Convert"-button. 2. You want to scale down the input frames because you have not enough diskspace. This is easy. Just enable the Processor, open the Processor-Window and add a "Halve"-effect. That's all. 3. You want to convert only some of the images, e.g. frames 31...54. This is easy. Just open the CRange-window and enter these numbers. 4. You want to have a small animation in front of a large background. This is easy. Enable the processor and use a "LoadImage"- and a "Compose"-effect. That's all again. I could write thousand of such examples here - all of them where easy to realize. @{b}Converter-Window@{ub} @{u}Input@{uu} Type Select the type of input: "Animation", "SinglePictures" or "BlackFrames" Info Display some type-dependant information about the input-animation Related Options Open one of the optionswindows @{"PictureList" link PictureListWindow} or @{"BlackFrames" link BlackFramesWindow} depending on the type of input @{u}Output@{uu} Type Select the type of output: "YAFA", "ANIM", "SinglePictures" or "NIL:" Info Display some type-dependant information about the generated output-animation Related Options Open one of the optionswindows @{"YAFAOptions" link YAFAOptionsWindow}, @{"IFFOptions" link IFFOptionsWindow} or @{"SinglePictures" link SinglePicturesWindow} @{u}Options@{uu} Annotation Optional annotation string or file to include in a YAFA-animation Range Open the @{"CRange-Window" link CRangeWindow} to specify the range of the input-stream to be processed Preview Select the preview-type (none/window/screen) Processor Enable the Processor to modify the input-stream @{u}Operation@{uu} Save Session Save all options including the current window-settings and the Processor-settings as the specified session-file Load Session Restore a previously saved session Convert Start the converter All combinations of input- and output-streams are possible. A special case is input=output=SinglePictures. This feature is not obsolete, it allows you to create a sequence with numbered filenames from pictures having different locations. If you specify "NIL:" as output-stream no frames are written. This feature is especially usefull for testing complicated Processor-scripts. The Converter can be aborted at any time - in the most cased the cancelled output-stream will be usable. @endnode @node CRangeWindow @{b}CRange-Window@{ub} From within this window the range of the processed input-stream is specified. @{b}Functions@{ub} State Enable/disable the current range-settings From First frame To Last frame, if a negative value is specified the number of input-frames is decremented by this value Step Range-step, usefull for example to skip every 2nd frame Remove loop A preset to skip the looping frames of an IFF-animation If the range is disabled the whole input-stream is processed. @endnode @node IFFOptionsWindow @{b}IFFOptions-Window@{ub} This window let you select various settings for IFF-animations to be generated. @{b}Functions:@{ub} Related Options: Type Compression type Colormap Dynamic or static colormap Screenmode Screenmode used while playing the animation @endnode @node SinglePicturesWindow @{b}SinglePictures-Window@{ub} Using this window you can set up some options which affect the generation of single pictures. @{b}Functions:@{ub} Basename base-filename for the generated files, the frame-number will be appended in the format ".%04d", e.g. "ram:pic" -> "ram:pic.0001", "ram:pic.0002"... Shift Frames Value to add to the frame-number before generating the filename Screenmode Screenmode used while displaying the frames Type Toggles rendering on or off. @endnode @node YAFAOptionsWindow @{b}YAFAOptionsWindow@{ub} This window lets you adjust the various settings for YAFA-animations to be generated. @{b}Functions:@{ub} Image data Internal representation of the image-data Colormap Dynamic or static colormap Force Timecodes Force the creation of timecodes even they are all equal Speed Speed-preset for the Player (fps=50/speed on Pal) Post Compression Turn on xpk-post-compression Compressor Select xpk-compressor Mode Select xpk-compression-mode, see xpk references for more details Delta Compression Choose the type of delta compression UC-Frames Choose the number uncompressed delta-frames UC-Mode Choose the type of uncompressed delta-frames Analysis open the @{"Analysis-Window" link AnalysisWindow} to check out some predefined combinations of settings. Import Extract the settings from an external YAFA-animation Load Load a previous saved settings-file Save Save all YAFA-settings into a settings-file @endnode @node AnalysisWindow @{b}Analysis-Window@{ub} The functions of this window are useful if you have no idea about the meaning of the various parameters. It creates some animations using some predefined settings and displays the resulting size-profiles. After that the settings of the smallest generated animation is selected and can be applied to the YAFAOptions-Window. @{b}Functions:@{ub} Frames Number of frames generated for every test Run test Start the test Results Displays some informations like the output-size and the used settings for every generated animation Size Profile Displays a size-profile for every generated animation, the one of the selected animation is highlighted Use Apply the settings of the selected animation to the YAFAOptions-Window @endnode @node PictureListWindow @{b}PictureList-Window@{ub} The picturelist has many features to create and manipulate a list of pictures to be converted. @{b}Functions:@{ub} Add Add one or more pictures Add Reverse Add one or more pictures in reverse order Add Dir Add a whole directory Sort Sort the complete list Check Remove non-ILBM files and pictures that don't fit the first entry's dimensions (width, height, depth) from list, this functions makes only sense if the Processor is turned off Remove Remove selected item from list Remove Range Remove all items inside the selected range from the list Set Timecode Set the timecode for selected item Time Range Set timecodes for all items inside the specified range Show Display the selected picture Picture Info Display some informations about the selected item From First item of the range To Last item of the range Step Step of the range, e.g., a value of 2 skips every 2nd frame @endnode @node BlackFramesWindow @{b}BlackFrames-Window@{ub} The BlackFrames-Window is usefull if you want to render an animation using only Wildfire. An example would be a rotating cube with some pictures mapped on it. @{b}Functions@{ub} Frames Number of the frames to be generated Width Width of the frames Height Height of the frames The BlackFrames-stream is some kind of a simulation of a real picturelist or input-animation. The most important field is the number of frames. If the Processor-script doesn't use the generated input its recommended to make the size-values very small, e.g. 32x20. @endnode @remark /*************************************************************/ @remark /* @remark Projects @remark */ @remark /*************************************************************/ @node ProjectsWindow @{b}Projects-Window@{ub} The animation-projects created with this editor are arrangements of YAFA-animations and music modules, samples and executables. Projects are saved as text files which can played from within the @{"Player-Window" link PlayerWindow} or directly envoking the YAFA-Player "yp" with the "-batch"-option. Projects are the perfect choice if you want to create huge videos because the YAFA-system has the capability to play more small animations as one without any gaps. Another advantage is the fact that you can apply changes to such a project much easier than to a single huge animation. @{b}Functions:@{ub} @{u}Animations@{uu} Add Include a YAFA-animation (*) Kill Remove the selected animation from the list Replace Replace the selected file Up/Down Move selected item up/down in the list Local Range Specify the first first and last frame to be played Example: the selected animation has 100 frames 1, 100 - exactly one shot 11, 50 - skips first 10 frames, plays 40 frames 51, 250 - plays the complete animation exactly two times, start/end are moved by 50 frames Global Range Shows range as global frame numbers in the project Info Display some information about the selected animation and let you adjust some settings similar to the @{"Player-Window" link PlayerWindow} Filmstrip Open the @{"Filmstrip-Window" link FilmStripWindow} @{u}Sounds@{uu} Add The same like (*) for modules, samples or executables Kill Dito Replace Dito Global Range Set global frame numbers to start/stop playing selected sound. An executable will be started when the player reaches the start value. A special case is the range 0,0 for executables. These commands will be executed before the YAFA-Player shuts down intuition - so you can use commands that have an output (like a cd-player) Type specify the type of sound-effect Edit open one of the edit-windows @{"Module" link ModuleWindow}, @{"Sample" link SampleWindow} or @{"Command" link CommandWindow} @{u}Project@{uu} Frames Shows the number of frames the whole project consists of Play selected Play project starting with the selected item Play all Play the whole project Profile Open the @{"Profile-Window" link ProfileWindow} Identify Calculate animation and frame number from a global frame number Save All Save all frames played in the project using the picture basename specified in the @{"Converter" link ConverterWindow} Clear clear the whole project Project File select file to load/save @endnode @node ProfileWindow @{b}Profile-Window@{ub} The Profile-Windows is made to visualize the ranges of animations and sounds of a project. @{b}Functions@{ub} Animations Shows bars representing the global ranges of the animations Sounds The same for sound-effects Size-Profile Show a size-profile of the whole project Full View Scale the bars horizontally to fit the whole project in the window Lines Number of visible lines, the best choice depends on the used font Because the range of a particular animation effects the whole project it can not be changed from within this window. But you can set ranges of sound effects using the mouse: Left Button Drag startpoint Right Button Drag endpoint @endnode @node ModuleWindow @{b}Module-Window@{ub} This edit-window appears if the selected item is a protracker module which will be played with the internal player. @{b}Functions:@{ub} File Filename which can be changed here Test Hear the module Stop Stop playing @endnode @node SampleWindow @{b}Sample-Window@{ub} If the selected sound-effect is an IFF 8SVX sample this window appears. @{b}Functions:@{ub} File Filename which can be changed here Test Hear the sample Channel Select the audio channel (ignored when playing stereo samples) Repeat How often the sample is played, a value of 0 causes an endless loop Volume Adjust the volume Stop Stop playing @endnode @node CommandWindow @{b}Command-Window@{ub} This window is for editing commands. String The command you want to execute. You can type in whatever you want, e.g. "rx ARexx:EP_LoadModule.rexx Music:CUST.Electricity" or "CDPLAY 4" or "delete s:startup-sequence" Test To execute the command. @endnode @node FilmStripWindow @{b}Filmstrip-Window@{ub} From within this window you can create, modify and play filmstrips. A filmstrip is a small representation of a single animation or a whole project. Such filmstrips are for example played in the middle the TMaker-Window. @{b}Animation@{ub} Animation Filename of the animation or project to be converted From/To/Step Range changes the pictures which will be used for the film Width The width of the filmstrip Color Type of palette to be generated Update Start converting @{b}Film@{ub} Film Filename of the Filmstrip Rows/Cols Specifys the layout while displaying or playing Load/Save Load/save a filmstrip Play Play the selected filmstrip as movie, to change the speed use the numeric keys Append Append the selected filmstrip to the current (displayed) one @endnode @remark /*************************************************************/ @remark /* @remark Player @remark */ @remark /*************************************************************/ @node PlayerWindow @{b}PlayerWindow@{ub} This window acts as a GUI for the external animation players like the YAFA-Player "yp". Some of the functions are only available for YAFA-animations. @{b}Animation@{ub} File filename of a single animation or a Wildfire-project Display select the realtime-transformations done by the YAFA-Player Cache don't play YAFA-animations directly from harddisk FrameBuffers cache-buffer for the YAFA-player LoadBuffer load-buffer for the YAFA-player @{b}Information@{ub} Animation show type-specific informations about the selected animation Shortcuts show the shortcuts of the YAFA-player In case of YAFA- or IFF-animations a size-profile and some informations about the used compression is displayed. The @{" Timecodes-Window " link TimeCodesWindow} can be reached from this Window, too. @{b}Player@{ub} Output select the type of display for the YAFA-player Wait after setting this option the YAFA-Player waits for a SPACE-press before playing @endnode @node TimeCodesWindow @{b}TimeCodes-Window@{ub} This window allows you to modify the timecodes of YAFA- and IFF-animations. A special feature is importing/exporting files. This makes it possible to modify timecodes graphically using the @{" Envelope-Editor " link EnvelopeWindow}. @{b}Functions:@{ub} From, To, Step range to be modified Set Timecode set a single timecode Time Range change all timecodes inside the specified range Import import timecodes from a file saved by the Timecodes-Editor or from within the @{" EnvelopeAdvanced-Window " link EnvelopeAdvancedWindow} Export save the current timecodes to disk Show show the selected frame of the animation Play play the whole animation to test the changes @endnode @remark /*************************************************************/ @remark /* @remark TMaker @remark */ @remark /*************************************************************/ @node TMakerWindow @{b}TMaker-Window@{ub} The transition maker creates various predefined transitions between two animations also known as "wipes". This feature is very useful in conjunction with animation-projects. It's recommended to install the example-filmstrips which show two animations (called "A" and "B") and the selected transition from "A" into "B" (called "A->B") as small animations in the middle of the Transition-Window. The Filmstrip-Player is implemented as a background-task at low priority so no cpu-time is wasted. Because only YAFA-animations can be arranged in animation-projects only this output-format is supported yet. @{b}Functions:@{ub}: Input1 Input animation 1 Input2 Input animation 2 Output Output animation (the transition) Temp A directory used for the temporary files which will be created while rendering CreateEX If you have only the small installation of Wildfire without transition-filmstrips this button will create them for you. To test if you have the example transitions just enable the "Example"-option. After that three animations should appear in the middle of the window. If they doesn't you may create them by pressing the "CreateEX"-button. YAFAOpts Adjust the YAFA-compressor-options Preview Turn preview on/off Example Turn example-movies on/off Because this features runs at low priority it may be always switched on. Type Select the main type of transition Subtype Select the subtype of the selected transition CreateTemp Create the temporary files This files have to be generated only once for a pair of input-animations. So you can test various transitions very quickly. The "Convert"-function creates them automatically if necessary. KillTemp Deletes all temporary files. Play Play the animation-sequence "anim1 - transition - anim2" Convert Create the transition @endnode @remark /*************************************************************/ @remark /* @remark Preferences @remark */ @remark /*************************************************************/ @node PreferencesWindow @{b}Preferences-Window@{ub} The Preferences-Window lets you specify most of the program-settings and handle different settings for different purpose. All modified settings are active immediately - there are no "Use"- or "Cancel"- gadgets. @{b}Functions @{ub} ScreenType choose the type of the Wildfire-screen Screenmode choose the screenmode DisplayScreenmode choose the screenmode for displayed images ScreenFont select the font for the Wildfire screen IconManagerFont select the font for the Icon Manager ScreenColors select the colors for the wildfire screen Preset some color-presets. "WF (modern)" is the default Import load colors Export save colors PlayerScreen name of the public screen for the YAFA-Player DClickTime time for a double click Statistics turn on/off the generation of Player- and Converter-statistics Expertmode turn on/off safety-requesters BrutalBlit faster blitting OpenDWA open the @{" DWA-Window " link DWAWindow} at startup Paths open the Paths-Window Macros open the Macros-Window File the filename of the current Preferences-file Save save the current settings Load load the specified settings @{b}Paths-Window @{ub} From within this window the default paths for animations, pictures, ... and the external programs are specified. YAFA Player player for YAFA-animations (default: "c:yp") Anim Player player for ANIM-animations (default: "c:vt") MPEG-Player player for MPEG-anims (default: "c:mp") ImageProcessor external image-processor (default: "ADPro mm=1000000") Viewer image-displaying program (default: "c:visage") Editor text-editor (default: "c:ed") The "ImageProcessor"-setting is only used by the "ARexx"-Operator-PlugIn. @{b}Macros-Window@{ub} In this window the ARexx-macros executed after pressing on of the function-keys can be specified. Because there are only 10 function keys and maybe lots of macros the -key is reserved. After pressing it a filerequester appears and lets you select the macro to execute. @endnode @remark /*************************************************************/ @remark /* @remark Icons @remark */ @remark /*************************************************************/ @node IconsWindow @{b}Icons-Window@{ub} The Icons-Window has three major functions: changing filetypes of icons on the desktop, setting up of some desktop-specific options and creating of icons with nearly unlimited size and quality. @{b}Options:@{ub} File filename of the desktop-files Trashcan-Action lets you selected if you want to remove only icons or icons and files @{b}Icon-Saver:@{ub} Image1 filename of the first (normal) image of the icon to be generated Image2 optional 2nd image Icon icon-file to be generated Color sets the type of palette to be generated Width specified the icon-width, the height depends on the aspect of the 1st image Depth number of colors used for rendering Convert After pressing the convert-button the images are loaded, scaled and rendered using the current screen-palette. If you want to create icons for the Workbench you have open Wildfire on the Workbench-screen (temporary). If you want to create icons in high quality use a very high screen-depth and convert the created icons into NewIcons later. @{b}Change the filetype:@{ub} If Wildfire didn't recognise the type of an external file correctly you can change this type by simply dragging the icon into the Icon-Window. After that a requester displaying the current and the available filetypes will appear. @endnode @remark /*************************************************************/ @remark /* @remark DWA @remark */ @remark /*************************************************************/ @node DWAWindow @{b}DWA-Window@{ub} The DWA-Window allows you to access windows directly. This may help you to locate special functions in a faster way. After selecting a window and pressing the -key the selected window and all windows which are on top of it in the window-hierarchy are opened. If you set the "OpenDWA"-option in the @{"Preferences-Window" link PreferencesWindow} the DWA-Window will be opened at startup automatically. @endnode @remark /*************************************************************/ @remark /* @remark Log @remark */ @remark /*************************************************************/ @node LogWindow @{b}Log-Window@{ub} All statistics, warnings and some additional informations are collected and displayed in this window. Of course this feature can be turned off. @{b}Functions@{ub}: State toggle logfile-generation on/off Edit edit the logfile Delete delete the logfile Clear clear the logfile Load load the logfile Save save the logfile Verbose toggle verbose-mode on/off SaveAtExit toggle saving of the logfile at program-exit on/off @endnode @node InfoWindow @{b}Info-Window@{ub} This window displays some useful informations like the available memory, the date, the amount of currently allocated memory and program-informations. @endnode @remark /*************************************************************/ @remark /* @remark PlugIns @remark */ @remark /*************************************************************/ @node PlugInsWindow @{b}PlugIns-Window@{ub} The PlugIns-Window gives you control over external Wildfire-programs known as "General PlugIns". @{b}Functions@{ub} Add add one or more PlugIns Delete unload the selected PlugIn SavePrefs save the settings of a PlugIn Open activate the selected PlugIn Close deactivate a PlugIn The "SavePrefs"-function saves the PlugIn-state and some private-date. If the PlugIn was open while saving it will be activated next time automatically. @{b}Available PlugIns@{ub} @{" ColorWheel " link ColorWheelPlugIn} @{" Command " link CommandPlugIn} @{" ConvertImages " link ConvertImagesPlugIn} @{" CountPlugIns " link CountPlugInsPlugIn} @{" EPSSaver " link EPSSaverPlugIn} @{" GrabWindow " link GrabWindowPlugIn} @{" TileImage " link TileImagePlugIn} @{" SlideShow " link SlideShowPlugIn} @endnode @node ColorWheelPlugIn @{b}ColorWheel-PlugIn@{ub} The ColorWheel-PlugIn was made to simplify the selection of the right colors for the various operators. Just select a color of your choice and use the values indicated at the bottom of the window as effect-parameters. @endnode @node CommandPlugIn @{b}Command-PlugIn@{ub} The Command-PlugIn executes the supplied input-string as Wildfire-ARexx-command. This may be useful while creating complicated macros or simply to test out how a particular command works. @endnode @node ConvertImagesPlugIn @{b}ConvertImages-PlugIn@{ub} The ConvertImages-PlugIn converts a drawer of images keeping all filenames. No special-effects can be applied. This is for example useful if you have a drawer with lots of jpeg-, tiff-, iff-, ... images and you want them all in png-format. The file-tag can be specified using the "Extension"-gadget - if this field is left blank the filenames are not changed. The output-format is selected as usual in the @{"Savers-Window" link SaversWindow} of the Processor. @endnode @node CountPlugInsPlugIn @{b}CountPlugIns-PlugIn@{ub} The CountPlugIns-PlugIn shows some statistics about the initialized PlugIns including Operators, Savers and General PlugIns. This trivial thing was created as example for the developer- kit which will be available soon. @endnode @node EPSSaverPlugIn @{b}EPSSaver-PlugIn@{ub} The EPSSaver-PlugIn converts any picture which can be read by Wildfire into an eps-file which can be included into TeX-documents or directly processed by ghostscript. @{b}Functions:@{ub} Input input-image Output eps-file to be generated Resolution resolution in dpi Type output-type: Gray, Color or Black&White @{b}Notes:@{ub} 1. This PlugIn replaces my iff2eps-package. 2. The eps-files created by this PlugIn are uncompressed and therefore highly portable. 3. The eps-image will be centered on a normal A4-page automatically. @endnode @node SlideShowPlugIn @{b}SlideShow-PlugIn@{ub} The SlideShow-PlugIn allows you to create slideshows easily. There are many functions to create and modify a picture-list which can be loaded and saved. The slideshow is performed calling the external program "Visage" by Magnus Holmgren. This nice program is used because of it's capability of "loading while displaying". @{b}Functions:@{ub} Add add one or more images to the list AddDir add the contents of a whole drawer to the list From, To, Step picture-range Remove remove the selected picture from the list Remove Range remove all pictures inside the specified range from the list Delete delete the selected picture File file for loading/saving picture-lists Save save the current picture-list to disk Load load a previously saved picture-list Clear clear the current picture-list Show display the selected picture Delay pause between two images during the slideshow Go perform the slideshow The only way to abort the slideshow is to abort the viewer sequentially pressing the right mouse-button. The number of required mouseclicks depends on the length of the image-paths and the number of items in the picture-list. @endnode @node GrabWindowPlugIn @{b}GrabWindow-PlugIn@{ub} The GrabWindow-PlugIn saves the selected Window or screen to harddisk. The output-format is selected as usual in the @{"Savers-Window" link SaversWindow} of the Processor. @endnode @node TileImagePlugIn @{b}TileImage-PlugIn@{ub} The TileImage-PlugIn splits a specified image into small portions with the same size. The output-format is selected as usual in the @{"Savers-Window" link SaversWindow} of the Processor. @{b}Functions:@{ub} Input input-image Output base-filename of the generated particles xCount number of fragments in x-direction yCount number of fragments in y-direction @{b}Notes:@{ub} 1. Finally you will get xCount*yCount fragments with filenames like "output.0001", "output.0002", ... The counter runs from the left lower edge to the right upper edge (which may be important if you want to use the created images later) 2. the sum of the generated fragments must fit the image-size *exactly*. For example you can't subdivide an image of the dimensions 640x480 into 3x7 fragments 3. The idea for this PlugIn is really not mine ;) @endnode @remark /*************************************************************/ @remark /* @remark FAQ @remark */ @remark /*************************************************************/ @node FAQ @{b}Frequently Asked Questions@{ub} 1. Q: Is there a WWW-site for Wildfire ? A: Not yet. 2. Q: How to contact the author ? A: epgbc@cluster1.urz.Uni-Halle.DE 3. Q: The demo-version I have installed isn't capable to convert large animations because of ''eating'' too much memory. Is this only a ''feature'' of the Demo-version ? A: Yes, of course ! Wildfire has an own memory handler to simplify and speed up memory-allocations. The Demo-version has no free()-function, only the freeall()-function (which cleans up after program-exit) is available. 4. Q: Wildfire crashes my machine heavily at startup... A: This is a serious thing. Before releasing any version of Wildfire I perform some characteristic enforcer-tests. So it's nearly impossible that the program performs some illegal things at startup itself. Maybe the reason is a lack in your system-software or a very special expansion-board. The following tools are installed in my system without causing any troubles with Wildfire: MCP (almost any things that make sense are enabled) DynamiCache NewIcons3.0 DefIcons FastIPrefs NewMode PowerSnap ToolManager BlizKick KingCON fBlt CPUClr AAStarter PatchWPA8 and maybe some more The following libraries are opened at startup: dos, graphics, intuition, diskfont, gadtools, utility, asl, wildfire, datatypes, amigaguide Long time ago I had a problem with another program crashing after opening an old version of amigaguide.library. So always try to use the latest and official versions of all of the disk-based libraries. For further help send me a more detailed bug-report including snoopdos- and enforcer-logfiles. 5. Q: Wildfire crashes my machine after loading the PlugIns... A: Since version 2.56 the debug-option ("wf -debug") turns on the output of some startup- and cleanup-informations. Please try it again using this option and send me the generated output (if possible). 6. Q: I've tried out the demo-version and it crashes after a while. I can't convert animations with it because I haven't enough memory to finish any operation. In may opinion you are loosing potential customers using such a way of restricting the unregistered program version. It would be much better to print your logo to every generated image - nobody could use the program seriously without registering. A: This is no bad idea. In fact I had implemented this "feature" in a previous version. The problem is that it's too easy to patch for "sunday-crackers". The way I currently use requires much more knowledge than simply replacing code-lines of the disassembled binary with "nop"-statements. Another point is that I think that's not necessary to create complete animations to decide if Wildfire is worth registering or not. Many working features of the unregistered version are missing in much more expensive "commercial" software. 7. Q: Why did you release Wildfire as shareware ? It looks very professional. A: Well, Wildfire *IS* a professional piece of software. The main reason is the fact that Wildfire released as shareware is one of the programs with the best price/performance-ratio. If you release a program as "commercial product" a lot of money is spent for any other purpose than the program-development. A printed manual for example is very expensive to produce but the most people doesn't read manuals. Another advantage is the fast availability of free updates. Finally we couldn't find a distributor here in Germany because most of them sell their own gfx-software and the remaining ones are not professional. @endnode @remark /*************************************************************/ @remark /* @remark Processor @remark */ @remark /*************************************************************/ @node ProcessorWindow @{b}Processor-Window@{ub} @{u}Introduction@{uu} The Processor is Wildfire's powerful image-processing engine which acts as a PlugIn between the Converter's input and output. If you have understood the basic @{" concept " link pcConcept} of this architecture it's easy for you to create almost any complicated or simple effect. @{b}Functions:@{ub} @{u}Process-script:@{uu} Add open the @{" Operators-Window " link OperatorsWindow} to append an operator to the list Kill kill the selected item Duplicate duplicate the selected item Import import one or more items from a previously saved Process-file Edit open the options-window of the selected Operator Up move the selected item up Down move the selected item down Visible/Hidden toggle if the current item remains visible if folding is enabled Folding toggle list-folding on/off Range the frame-range of the current Operator Folding is very nice feature creating very complex scripts. If a particular scene works you should hide it to work on the next one. A comment describing the hidden scene and maybe the frame-range should be left visible. @{u}Options:@{uu} Mode color-mode for rendered images Dither dithering-method used rendering images Depth depth of rendered images CSkip number of colors not used rendering images, this may be useful for creating Workbench-backdrops Scale @{" Process-Scale-value " link pcScale} 3DQuant 3D-quantization-parameter which causes the 3D-operators to approximate the input-image by faces to speed up the generation of previews. The value indicates the size of the generated rectangles in pixels, larger values increase the speed and decrease both the memory-consumption and the quality. Smooth toggle smoothing for various Operators on/off Single Image open the @{" SinglePicture-Window " link SinglePictureWindow} to process single images Variables open the @{" Variables-Window " link VariablesWindow} to edit time-dependant animation-paramters Savers open the @{" Savers-Window " link SaversWindow} to select the Saver used while writing TrueColor-images Palette open the @{" Palette-Window " link PaletteWindow} to create a locked Palette Calculator open the @{" Calculator-Window " link CalculatorWindow} File filename used for loading/saving of Process-scripts Load load a previously saved Process-file Save save the Process-script, all Variables and the Palette as Process-file Clear clear the Process-script, all Variables keep unchanged @{b}Additional ShortCuts:@{ub} delete the selected list-item Test Process of the @{" SinglePicture-Window " link SinglePictureWindow} toggle @{" Preview " link ProcessorPreview} on/off , browse through the Process-list unfold item (if folding=off) unfold whole list after safety-requester (if folding=on) fold item @endnode @node pcConcept @{b}The concept@{ub} A normal animation-converter like MainActor reads in a input-stream of pictures and writes them as output-stream to harddisk. (The complicated process of (de)compressing various animation- formats is here neglected.) The Converter of Wildfire extends this simple concept by a PlugIn-architecture. You can "plug in" as many modifications between the input and the output as you want. These modifications are realized via Operators. For example this concept would allow to scale down animations "plugging in" a Halve-operator. A further extension is the usage of tempory buffers called "TEMP-buffers". Every Wildfire-PlugIn has at least two Parameters: the input- and the output-buffer. The "normal" buffer generated by the Converter is called "STREAM". There are 8 TEMP-buffers called "TEMP1"..."TEMP8". In this terms the process of halving an animation looks like this: input ->STREAM -> Halve -> STREAM I output This concept of TEMP-buffers is much more powerful. For example it allows you to create an animation which consists of the input- animation as gray background and as small colored foreground. In this case you would need a Scale-, a ColorToGray- and a Compose- PlugIn. The scheme would look like this: input ->STREAM -> Scale -> TEMP1 ) > Compose -> STREAM -> ColorToGray -> STREAM ) I output But this concept doesn't allow you very complicated effects like a jumping animation in front of a melting one. So a further extension is necessary: time-dependant animation- parameters. For example this allows you to create a spinning animation. All you need is a Rotate-PlugIn and a rotate-amount running from 0 to 360 degrees during the whole animation. Let's assume your animation has 120 frames. To convert it into a spinning one you have to "plug in" the Rotate-Operator, to create the Envelope describing the variation of the rotate-amount with the frame number and to "plug in" this Envelope into the Rotate-Operator. That's it. The Envelope consists of two points one at frame 0 with the value 0 and one at frame 120 with the value 360. Setting the value 0 at frame 0 which is never reached (the first frame is always 1) causes the creation of a looping animation. As said before, if you understood this concept you can do almost anything. Example: Compose four different animations after applying a Twirl-effect to the 1st, a Negative-effect to the 2nd, a Cube-effect to the 3rd and a Posterise-effect to the 4th one: input ->STREAM -> Twirl ->STREAM ) > Compose -> STREAM ) LoadImage ->TEMP1 -> Negative -> TEMP1 ) ) > Compose -> STREAM LoadImage -> TEMP1 -> Cube -> TEMP1 ) ) I > Compose -> TEMP1 ) output LoadImage -> TEMP2 -> Poszerise -> TEMP2 ) This example doesn't make any sense but demonstrates that the only limit is your own creativity. @endnode @node pcScale @{b}Process-Scale-value@{ub} This harmless-looking option is a real mega-feature: It allows you to use Processor-scripts designed for a particular image-size to apply to images of other dimensions. Example: You have designed a large project of about 1000 frames processing images of a dimension 320x256. Now you want to create a preview-animation of the halve size. So simply set the Scale-value to 0.5. Due the nature of such feature there are some restrictions: *the current image-sequence must have the same aspect as the one the script was designed for *some very special operators cannot be used, e.g. the font-size of the Text-operator cannot be scaled contingously But the last point is no real restriction because these few operators can be replaced (temporarily). There is one very important thing you should always remember. After changing the Process-Scale-value all process-parameters which are in pixel-units are scaled. That may be cause very strange results if you use images with a dimension which doesn't fit this scale-value. Example: You use a scale-value of 0.5 and the same images the script was designed for. In this case all size-dependant are divided by 2. If you script for example contains a 3D-operator with a camZ-value of -800 this value will be reduced to -400. This will cause a very strange view if your image has a size of 640x480, the program may even hang up due the rendering of almost infinite large faces. So always don't forget to change the input-stream and not only the Process-Scale-value ! @endnode @node ProcessorPreview @{b}Preview-Window@{ub} The Preview is a very useful feature while testing complicated scripts. It applies the current-Process-script to a smaller version of the picture specified in the @{" SinglePicture-Window " link SinglePictureWindow}. The change of any parameter is visible in the Process-Window instantly (on fast machines). To abort the geneneration of the preview hold the left mouse-button. The width and depth of the preview can be specified from within the @{" SinglePicture-Window " link SinglePictureWindow}. A width of 160 and a depth of 4 is a should be always good choice. The original width of the input-image is displayed in the window title. This may be sometimes important adjusting size-dependant parameters. If you used a "normal" image-processor before you may have enjoyed the feature of graphically specifing parameters like dragging a rectangle for a Crop-effect. Such a feature isn't implemented into Wildfire because I had no idea of good concept yet. The problem is that all Operators of the Process-script are independant. That means that a Twirl-effects doesn't "know" about a Scale-effect executed before. And the Scale-effect doesn't "know" about about a CreateImage-effect executed before... A first attempt is the @{" ImageCoordinates-Window " link ImageCoordinatesWindow} which allows you to graphically modify some types of controls inside the Preview-Window. For example if you want to crop an image you may use the "Rectangle"-control and later copy the indicated coordinates to the options-window of the Crop-PlugIn. To disable a particular effect temporaray simply modify it's working range (especially the from-value). @{b}Shortcuts:@{ub} refresh the image (e.g. after aborting) open the @{" ImageCoordinates-Window " link ImageCoordinatesWindow} @endnode @node ImageCoordinatesWindow @{b}ImageCoordinatesWindow@{ub} The ImageCoordinates-Window is a first attempt to modify parameters graphically. There a some types of controls which can be dragged and modified using the mouse. All interesting values like image-coordinates or the radius of a circle are indicated and could be copied to the options-window of the selected PlugIn. @{b}Functions@{ub} Control-Type type of control: point : simple point, e.g. represting a upper-left edge of a image to be composed rect : e.g. representing a crop-region circle: e.g. representing the amount and the radius of a Twirl-effect Left,Top coordinates of the point (in coordiantes of the unscaled image), upper-left edge of the rectangle, centre of the circle, Right, Bottom lower-right edge of the rectangle Angle angle of the current drawn radius of the circle Radius radius of the circle @endnode @node SinglePictureWindow @{b}SinglePicture-Window@{ub} This window is made to process single images and to simplify the creation of complicated Processor-scripts. @{b}Functions:@{ub} Input input image, this field is by default initialized by Wildfire's intro-picture because it must be always filled Frame the current frame Frames number of frames, this value is only used as maximum for the scrollbar below Scrollbar another way to change the current frame number Test Process execute the current Processor-script using the current frame-number and display the result Screenmode select the screenmode used by the "Test Process"-function Apply Dimensions apply the dimensions of the current input-image to the selected operator, e.g. if the selected operator is a Twirl-effect the centre and the radius is set Preview toggle @{" Preview " link ProcessorPreview} on/off Width width of the preview Depth depth of the preview, if this value exceeds the screen-depth the screen is updated automatically Output output-image Save Image execute the current Processor-script using the current frame-number and save the result using the saver selected in the @{" Savers-Window " link SaversWindow} Save Rendered execute the current Processor-script using the current frame-number, render it using the settings made in the Processor-Window and save the result as ILBM-image @{b}Additional Shortcuts:@{ub} toggle @{" Preview " link ProcessorPreview} on/off Test Process , decrease/increase the current frame-number @endnode @node VariablesWindow @{b}Variables-Window@{ub} From within the Variables-Window time-dependent animation-parameters are created, modified, loaded and saved. @{b}Functions:@{ub} Add add a variable Kill kill the selected Variable Rename rename the selected Variable Envelope open the @{" Envelope-Window " link EnvelopeWindow} to graphically edit the current variable File filenames used for loading/saving of variables Load load variables from a previously saved Variables-file Save save all variables to disk Clear clear all variables After clearing a Variable all informations about this Variable are lost - even in the Processor-script. @endnode @node SaversWindow @{b}Savers-Window@{ub} From within this window the Saver used for writing Truecolor-images is choosen. Most Savers offer an options-window which can be accessed from within the Savers-Window, too. Another purpose is to add or remove Saver-PlugIns. Saver-PlugIns contain both the save- and the load-functions for a particular image-format. Removing a Saver causes the loss of the capability to load and save images of this file-format. All unknown fileformats are handled via datatypes which is restricted to the operation of loading. Most Saver-PlugIns allow you to disable the loader-function explicitly. This may be necessary if the Wildfire-loader doesn't support a particular sub-format and you want to use datatypes. An example is the PNG-format with it's lots of options. There a many people saying "may xxx-datatype is the best, the greatest and the fastest". If this is also your opinion you may switch the loaders permanently off saving the prefs after disabling. (In fact it's nearly impossible to write a datatypes which operates faster than Wildfire because this program always was to designed to be fast and not to conserve memory.) @{b}Functions:@{ub} Add add an external Saver-PlugIn Delete delete the selected Saver-PlugIn SavePrefs save all of the options of the current PlugIn Options open the options-window of the selected Saver-PlugIn @{b}Available Savers@{ub} @{" ILBM " link ILBMSaver} @{" JPEG " link JPEGSaver} @{" PNG " link PNGSaver} @endnode @node ILBMSaver @{b}ILBM-Saver@{ub} This PlugIn saves and load images in the ILBM-format. @{b}Options:@{ub} Compression ByteRun1/Node Loader disable/enable the loader The choice of no compression is good for saving huge images (e.g. at 600dpi). In such cases there may be not enough memory to do any compression. @endnode @node JPEGSaver @{b}JPEG-Saver@{ub} This PlugIn saves and load images in the JPEG-format. @{b}Options:@{ub} Quality remaining image-quality in percent Format toggle Normal/Progressive-format Optimize toggle Huffman-table-optimizing on/off Output toggle TrueColor/GrayScale-output Loader disable/enable the loader In the most cases the TrueColor-Progressive-format should be the best choice. This PlugIn uses routines of the @{b}IJG JPEG Library@{ub} developed by @{b}The Independent JPEG Group.@{ub} @endnode @node PNGSaver @{b}PNG-Saver@{ub} This PlugIn saves and load images in the PNG-format. @{b}Options:@{ub} Format various formats are supported: 24Bit RGB : TrueColor-image 8Bit Color : rendered image in 256 colors (good GIF-replacement) 8Bit Gray : grayscale-image 4Bit color : rendered image in 16 colors Black&White: rendered Grayscale image in 2 colors Loader disable/enable the loader This PlugIn uses routines of the @{b}PNG Reference Library@{ub} developed by @{b}Group 42, Inc.@{ub} @endnode @node PaletteWindow @{b}Palette-Window@{ub} The Palette-Window lets you create, modify, load and save a locked Palette used by the Processor while rendering images. @{b}Functions:@{ub} File file to load/save palettes Load load the palette from the selected file, Save save the current palette to disk Red, Green, Blue values of the current selected palette-entry Copy duplicate the current color Exchange exchange two colors Spread create a color-transition between two colors Undo reset the last changed color to its previous value State toggle the state of the Palette Use make all performed changed permanent Cancel cancel all apllied changes If the state of the Palette is enabled it will be used for all forthcoming render-processes. This is very important if you want to create animations with locked colors using the Processor. If you use a screendepth smaller than 8 no change of Palette will be visible (indicated by changing screen-colors). In the other case while pressing the right mouse-button the normal screen-colors are used for the lower palette-entries which is important to locate gadgets. @endnode @node CalculatorWindow @{b}Calculator-Window@{ub} The Calculator-window is made to easily evaluate mathematical expressions and to define or view user-defined symbols. Most of Wildfire's gadgets allow you to enter mathematical expressions, too. The symbols defined from within the Calculator-Window can be accessed from this gadgets, too. @{b}Functions:@{ub} 1st string-gadget expression to evaluate Results shows the last three results Symbols list of all user-defined symbols, especially constants Load load symbols from a previously saved file Save save all symbols to disk To define a symbol enter it's name and optionally it's value, e.g. "a=sqrt(9)/2" initializes the symbol "a" with the value 1.5. Later you could enter the expression "a/2" into of the Processor-gadgets. If the corresponding value (e.g. a zoom-factor) is of type float it will be set to 0.75 otherwise it will be rounded to 1. @endnode @node EnvelopeWindow @{b}Envelope-Window@{ub} From within this window all time-dependent animation-parameters (called "Envelopes") are created and modified. An Envelope is a twodimensional curve with the frame-number as x-values and the animation-parameter as y-value. Therefore the x-values are always integer-values. If the framber-number of the Processor exceeds the range of an Envelope the first or last y-Value is used. This means if your Envelope only contains one point the y-value of this point is used for all frame-numbers. Most operations are made using the mouse. A point is selected by clicking on it. Moving the mouse while holding the left button causes the selected point to be dragged. The whole graph can be scrolled using the cursor-keys. @{b}Functions:@{ub} XRange the displayed x-range YRange the displayed y-range X the x-value (frame-number) of the selected point Y the y-value of the selected point Add Point add a point Kill Point kill a point Type change the type of the Envelope: Linear: connect two points by straight lines Spline: use a cubic spline interpolation to connect points Bezier: surround points by bezier-curves View All view the whole Envelope File filename to save/load Envelopes Load load a previously saved Envelope Save save the current Envelope to disk Use make all performed changes permanent Cancel discard all applied changes Advanced Options open the @{" EnvelopeAdvanced-Window " link EnvelopeAdvancedWindow} to perform more complex operations @endnode @node EnvelopeAdvancedWindow @{b}EnvelopeAdvanced-Window@{ub} From within this window seldom-used but very useful transformations are applied to Envelopes. @{b}Functions:@{ub} @{u}Point-Operations:@{uu} First, Last, Step point-range affected by transformations YValue x-value used by the transformation YValue y-value used by the transformation Scale scale the Envelope by the x- and y- value specified below Shift shift the Envelope by the x- and y- value specified below @{u}Evaluate Expression:@{uu} XMin, XMax, XStep x-range used for evaluating Expression mathematical expression as function of "x" Evaluate create an Envelope using the x-range as frame-numbers and the evaluated values as y-value @{u}Import/Export:@{uu} Load Curve load a 2D-data file used by plotting programs and convert it as an Envelope Save Curve save the current Envelope as 2D-datafile Load Timecodes load a previously saved Timecodes-file and convert it as an Envelope Save Timecodes save the current Envelope as a Timecodes-file used from within the @{"Timecodes-Window" link TimecodesWindow} @endnode @node OperatorsWindow @{b}Operators-Window@{ub} The Operators-Window opens after pressing the "Add"-button of the Processor-Window and allows you to select an operator which will be appended to your Processor-script. Another purpose is to add PlugIns to the internal database or to remove them. All operations can be done both using the mouse and the keyboard. Use the cursor-keys to browse through the lists and the -key to apply the selection. @{b}Functions:@{ub} Add to load one or more PlugIns from harddisk Delete to delete the selected PlugIn Select to append the selected operator to the Processor-script Cancel to cancel the selection @{b}Operator-PlugIns:@{ub} There are five basic types of Operator-PlugIns according to their purpose. @{b}Buffer:@{ub} modifying or creating buffers @{" Add " link opAdd } Add two images @{" Example " system "visage wf:doc/pictures/Add.pic"} @{" Compose " link opCompose } Compose two images @{" Example " system "visage wf:doc/pictures/Compose.pic"} @{" CreateImage " link opCreateImage } Create a colored image @{" Example " system "visage wf:doc/pictures/CreateImage.pic"} @{" Crop " link opCrop } Cut off a rectangular area of an image @{" KillTemp " link opKillTemp } Kill a TEMP-buffer @{" LoadImage " link opLoadImage } Load an image from harddisk @{" LoadTemp " link opLoadTemp } Copy a TEMP-buffer to the main stream @{" Plasma " link opPlasma } Create a colored image @{" Example " system "visage wf:doc/pictures/Plasma.pic"} @{" ReplaceComp " link opReplaceComp } Replace a color-channel of an image @{" Example " system "visage wf:doc/pictures/ReplaceComp.pic"} @{" SaveImage " link opSaveImage } Save an image to disk @{" SaveTemp " link opSaveTemp } Copy the main stream to a TEMP-buffer @{b}2D-F/X:@{ub} performing 2D-transformations @{" BlackHole " link opBlackHole } Deform an image @{" Example " system "visage wf:doc/pictures/BlackHole.pic"} @{" Cartesian2Polar " link opCartesian2Polar} Transform the coordinates of an image @{" Example " system "visage wf:doc/pictures/Cartesian2Polar.pic"} @{" Displace " link opDisplace } Randomly exchange points of an image @{" Example " system "visage wf:doc/pictures/Displace.pic"} @{" Flip " link opFlip } Mirror an image along various directions @{" Example " system "visage wf:doc/pictures/Flip.pic"} @{" Halve " link opHalve } Quickly halve the dimensionsions of an image @{" Magnet " link opMagnet } Deform the image @{" Example " system "visage wf:doc/pictures/Magnet.pic"} @{" MotionBlur " link opMotionBlur } Apply a touch of motion to an image @{" Example " system "visage wf:doc/pictures/MotionBlur.pic"} @{" Pixelize " link opPixelize } Reduce the resolution of an image @{" Example " system "visage wf:doc/pictures/Pixelize.pic"} @{" Roll " link opRoll } Scroll an image along every direction @{" Example " system "visage wf:doc/pictures/Roll.pic"} @{" Rotate " link opRotate } Rotate (a portion) of the image @{" Example " system "visage wf:doc/pictures/Rotate.pic"} @{" RotateBlur " link opRotateBlur } Apply a touch of motion to an image @{" Example " system "visage wf:doc/pictures/RotateBlur.pic"} @{" Scale " link opScale } Scale an image @{" Shear " link opShear } Shear the image @{" Example " system "visage wf:doc/pictures/Shear.pic"} @{" ShiftLines " link opShiftLines } Randomly shift the lines of an image @{" Example " system "visage wf:doc/pictures/ShiftLines.pic"} @{" Twirl " link opTwirl } Deform an image @{" Example " system "visage wf:doc/pictures/Twirl.pic"} @{" Wave " link opWave } Apply a harmonic 2D-Wave to the image @{" Example " system "visage wf:doc/pictures/Wave.pic"} @{b}Color:@{ub} applying color-transformations @{" Alpha " link opAlpha } Color Changes using an Alpha Channel @{" Example " system "visage wf:doc/pictures/Alpha.pic"} @{" Antique " link opAntique } Change the colors to look "antique" @{" Example " system "visage wf:doc/pictures/Antique.pic"} @{" Balancing " link opBalancing } Change the colors using Balancing @{" Example " system "visage wf:doc/pictures/Balancing.pic"} @{" ColorToGray " link opColorToGray } Convert an image into grayscale @{" Example " system "visage wf:doc/pictures/ColorToGray.pic"} @{" Convolve " link opConvolve } Apply a convolution-filter @{" Example " system "visage wf:doc/pictures/Convolve.pic"} @{" Emboss " link opEmboss } Change an image to look like made of stone @{" Example " system "visage wf:doc/pictures/Emboss.pic"} @{" LUT " link opLUT } Change the colors using a LookUpTable @{" Example " system "visage wf:doc/pictures/LUT.pic"} @{" MedianFilter " link opMedianFilter } Apply a medianfilter to an image @{" Negative " link opNegative } Turn dark portions into light portions @{" Example " system "visage wf:doc/pictures/Negative.pic"} @{" Noise " link opNoise } Apply random noise to an image @{" Example " system "visage wf:doc/pictures/Noise.pic"} @{" OilTransfer " link opOilTransfer } Change the image to look like "oilpainted" @{" Example " system "visage wf:doc/pictures/OilTransfer.pic"} @{" Posterise " link opPosterise } Reduce the color-information of an image @{" Example " system "visage wf:doc/pictures/Posterise.pic"} @{" SwapRGB " link opSwapRGB } Swap the color-components of an image @{" Example " system "visage wf:doc/pictures/SwapRGB.pic"} @{" Threshold " link opThreshold } Create alpha channels @{" Example " system "visage wf:doc/pictures/Threshold.pic"} @{b}3D-F/X:@{ub} performing complex 3D-transformations @{" Bump " link opBump } Add a third dimension to an image @{" Example " system "visage wf:doc/pictures/Bump.pic"} @{" Cube " link opCube } Wrap an image on a cube @{" Example " system "visage wf:doc/pictures/Cube.pic"} @{" LWOB " link opLWOB } Load and draw Lightwave-objects @{" Example " system "visage wf:doc/pictures/LWOB.pic"} @{" Perspective " link opPerspective } Add perspective to an image @{" Example " system "visage wf:doc/pictures/Perspective.pic"} @{" Water " link opWater } Apply an anharmonic water-wave to an image @{" Example " system "visage wf:doc/pictures/Water.pic"} @{" Wave3D " link opWave3D } Apply a harmonic wave to an image @{" Example " system "visage wf:doc/pictures/Wave3D.pic"} @{" Wrap " link opWrap } Wrap the image on a sphere or a tube @{" Example " system "visage wf:doc/pictures/Wrap.pic"} @{b}Misc:@{ub} very special or seldom-used PlugIns @{" ARexx " link opARexx } Exchange images with other applications @{" Comment " link opComment } Add a comment to the Processor-script @{" Example " link opExample } Example for the developer-kit @{" Example " system "visage wf:doc/pictures/Example.pic"} @{" Raster " link opRaster } Apply a black raster to an image @{" Example " system "visage wf:doc/pictures/Raster.pic"} @{" Text " link opText } Render text using various styles @{" Example " system "visage wf:doc/pictures/Text.pic"} @endnode @node opAdd @{b}Add-Operator@{ub} This operator adds or subtracts two images. @{b}Parameters@{ub} Input1 1st source buffer Input2 2nd source buffer Output destination buffer Mode add or subtract the images @endnode @node opCompose @{b}Compose-Operator@{ub} This operator composes two images using several genlock-methods and optionaly an alpha-channel. @{b}Parameters@{ub} Background background image Foreground foreground image Destination destination buffer Alpha optional alpha buffer Left left edge of the foreground image Top top edge of the foreground image Mix transparency of the foreground image CentreX center the foreground horizontally CentreY center the foreground vertically Red1, Green1, Blue1: genlock-color 1 Red2, Green2, Blue2: genlock-color 2 Genlock type of genlock: none : no genlock single color : normal genlock using color 1 inside color range : extended genlock using all colors inside the range color1...color2 outside color range : extended genlock using all colors outside the range color1...color2 @endnode @node opCreateImage @{b}CreateImage-Operator@{ub} This operator creates an image with an optional color-transition. @{b}Parameters@{ub} Output output-buffer Width width of the generated image Height height of the generated image Palette select one of the four edges Red, Green, Blue color of the edges HCopy copy the selected color horizontally VCopy copy the selected color vertically HVCopy apply the selected color to all four edges @endnode @node opCrop @{b}Crop-Operator@{ub} This operator cuts out a rectangular area of an image. @{b}Parameters@{ub} Input input buffer Output output buffer Left left edge of the rectangle Top top edge of the rectangle Width width of the rectangle Height height of the rectangle @endnode @node opKillTemp @{b}KillTemp-Operator@{ub} This operator clears a TEMP-buffer and frees it's memory. @{b}Parameters@{ub} Buffer TEMP-buffer to kill @endnode @node opLoadImage @{b}LoadImage-Operator@{ub} This operator loads an image or an image-sequence from disk. @{b}Parameters@{ub} Output output buffer Sequence complete filename of an single image or base-filename of an image-sequence Loop length of the image-sequence Shift shift-value for the filenames of an image-sequence Show show the choosen image @endnode @node opLoadTemp @{b}LoadTemp-Operator@{ub} This operator replaces the input-stream with a TEMP-buffer. @{b}Parameters@{ub} Buffer TEMP-buffer which holds the image to apply @endnode @node opPlasma @{b}Plasma-Operator@{ub} This operator creates an image using a fractal algorithm. @{b}Parameters@{ub} Output output buffer Width width of the generated image Height height of the generated image Dimension fractal dimension which affects the smoothness of the fractal Seed Parameter which affects the shape @endnode @node opReplaceComp @{b}ReplaceComp-Operator@{ub} This operator replaces a color-channel of an image with the red-channel of an other image. The main purpose of this PlugIn is to create Stereo-3D-Images. @{b}Parameters@{ub} Input1 input buffer Input2 image which replaces the selected channel Output output buffer Component color-channel to replace @endnode @node opSaveImage @{b}SaveImage-Operator@{ub} This operator saves images to harddisk. @{b}Parameters@{ub} Input image to save File filename Numbering C-formatstring, if this string is non-empty the current frame-number is appended to filename @endnode @node opSaveTemp @{b}SaveTemp-Operator@{ub} This operator copies the content of the input-stream to a TEMP-buffer. @{b}Parameters@{ub} Buffer Buffer to copy to @endnode @node opBlackHole @{b}BlackHole-Operator@{ub} This operator contracts the whole image. @{b}Parameters@{ub} Input input buffer Ouput output buffer CentreX, CentreY centre of the effect Amount amount, large values may cause the whole image to disappear Radius parameter specifying the local deformation Zoom zoom-factor for the whole image @endnode @node opCartesian2Polar @{b}Cartesian2Polar-Operator@{ub} This operator transforms the cartesian image-coordinates into polar coordinates. @{b}Parameters@{ub} Input input buffer Output output buffer R0 starting radius Phi0 starting angle Zoom zoom factor for the whole image @endnode @node opDisplace @{b}Displace-Operator@{ub} This operator swaps points of an image randomly. @{b}Parameters@{ub} Input input buffer Ouput output buffer Radius largest distance between two points to swap Probability probability of swapping in percent, a value of 100 causes all points to be affected Seed start-value for the random number generator @endnode @node opFlip @{b}Flip-Operator@{ub} This operator mirrors an image along a specified axis. @{b}Parameters@{ub} Input input buffer Ouput output buffer Axis mirror-axis @endnode @node opHalve @{b}Halve-Operator@{ub} This operator halves the dimensions of an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer @endnode @node opMagnet @{b}Magnet-Operator@{ub} This operator applies a local contraction or expansion to an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer CentreX, CentreY centre of the effect Amount amount of the deformation, positive values cause a contraction, negative a expansion, this value should be always in the range -20...20 Damping parameter which controls the fall-off of the deformation Zoom zoom-factor for the whole image @endnode @node opMotionBlur @{b}MotionBlur-Operator@{ub} This operator applies a touch of motion to an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer DeltaX, DeltaY direction and amount of the effect @endnode @node opPixelize @{b}Pixelize-Operator@{ub} This operator reduces the resolution of an image creating rectangles. @{b}Parameters@{ub} Input input buffer Ouput output buffer Width, Height size of the rectangles to create Centre centre the rectangles, this options should be switched off if the size of the rectangle varies with time Grid type of the optional grid to create Size thickness of the grid to create Red, Green, Blue base color of the grid DLeft, DRight , color variation of the grid to produce DTop, DBottom a threedimensional look @endnode @node opRoll @{b}Roll-Operator@{ub} This operator scrolls an image into a specified direction. @{b}Parameters@{ub} Input input buffer Ouput output buffer DeltaX, DeltaY scroll direction and amount Wrap toggle wrapping on/off @endnode @node opRotate @{b}Rotate-Operator@{ub} This operator rotates a circular region of an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer CentreX, CentreY centre of the circle Radius radius of the circle Amount rotate-angle Zoom zoom-factor for the rotated region @endnode @node opRotateBlur @{b}RotateBlur-Operator@{ub} This operator adds a touch of motion to an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer CentreX, CentreY centre of the blurred circle Radius radius of the circle Amount blur-amount, large-values like 60 cause a very long computation time @endnode @node opScale @{b}Scale-Operator@{ub} This operator scales up or down images. @{b}Parameters@{ub} Input input buffer Ouput output buffer Width, Height new size-values Type choose if the size-values are in pixels or percent Aspect choose the type of scaling: ignore : scale the image to the specified values takewidth : scale the image to the specified width-value and a computed height-value keeping the aspect takeheight: scale the image to specified height-value @endnode and computed width-value keeping the aspect @node opShear @{b}Shear-Operator@{ub} This operator shears an image with additional damping. @{b}Parameters@{ub} Input input buffer Ouput output buffer OriginX, OriginY shear-centre where no damping occurs Amount shear-amount Zoom zoom-value for the whole image Axis shear-direction Damping toggle damping on/off Damping damping-value @endnode @node opShiftLines @{b}ShiftLines-Operator@{ub} This operator shifts the lines of an image with optional jitter-effect. @{b}Parameters@{ub} Input input buffer Ouput output buffer Direction shift-direction Jitter toggle jitter on/off Shift shift-value Amount jitter-amount Probability probability for the jitter-effect Seed start -value for the random number generator @endnode @node opTwirl @{b}Twirl-Operator@{ub} This operator applies a nonlinear deformation to an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer FallOff radial direction of the fall-off of the deformation CentreX, CentreY centre of the effect Radius radius of the affected circular region of the image Amount twirl amount, very large value like 1000 are allowed Power parameter describing the local deformation, large values like 6 concentrate the deformation around the centre of the circle Zoom zoom-factor for the affected circular region @endnode @node opWave @{b}Wave-Operator@{ub} This operator applies a harmonic wave to an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer CentreX, CentreY centre of the wave, the point with no damping Amplitude amplitude of the wave Phase phase of the wave in degrees Wavelength wavelength Shift diagonal-shift-parameter Zoom zoom-value for the whole image Damping toggle damping on/off Damping damping-value Axis wave-direction Frame current frame Frames frame-number describing a whole cycle @endnode @node opAlpha @{b}Alpha-Operator@{ub} This operator modifies the brightness of an image using an alpha-channel. @{b}Parameters@{ub} Input input buffer Ouput output buffer Alpha alpha buffer Left left edge of the alpha image Top top edge of the alpha image @endnode @node opAntique @{b}Antique-Operator@{ub} This operator turns the colors of an image to look "anitique". @{b}Parameters@{ub} Input input buffer Ouput output buffer @endnode @node opBalancing @{b}Balancing-Operator@{ub} This operator performs some balancing operations. @{b}Parameters@{ub} Input input buffer Ouput output buffer Red shift-value for the red component Green shift-value for the green component Blue shift-value for the green component Contrast contrast-value, negative values decrease the contrast Bright shift value for all color-channels Gamma gamma-value All values have to be in the range -255...255. @endnode @node opColorToGray @{b}ColorToGray-Operator@{ub} This operator converts an image into grayscale. @{b}Parameters@{ub} Input input buffer Ouput output buffer Weights weight of the red, green and blue component: luminance : use luminance weights average : use for all components the same weight custom : use custom weights Red, Green, Blue custom weights, to avoid the use of float numbers all values are integers which are formed multiplying the real weight by a factor of 10000, e.g. the average weights are 3333, 3334 and 3333. @endnode @node opConvolve @{b}Convolve-Operator@{ub} This operator applies a 3x3- or 5x5 convolution-matrix to an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer Mix intensity of the generated effect Shift shift-value which is applied to the result for each pixel, this makes it for example possible to turn negative results into the valid range 0...255 without loosing details Size toggle the size of the matrix File filename for loading/saving a matrix Load load a matrix in Wildfire's or ADPro's format Save save the current matrix to disk @endnode @node opEmboss @{b}Emboss-Operator@{ub} This operator converts an image in a gray relief @{b}Parameters@{ub} Input input buffer Ouput output buffer Direction direction of the "lightsource", different directions may cause results looking extremely different @endnode @node opLUT @{b}LUT-Operator@{ub} This operator applies a LookUpTable to an image. Unlike to all other image-processors LUT's are represented by Envelopes and can be morphed ! There are 6 Envelopes: a Start- and an End-Envelope for every component. After specifying the number of frames the Start-Envelope is morphed into the End-Envelope. Different point-counts are possible. @{b}Parameters@{ub} Input input buffer Ouput output buffer Mode toggle Edit/View-mode Type type of the spline of the current channel Component current component RGB apply the current Envelope to all components Preset choose a preset Apply apply the selected preset to the current component Position modify the Start- or the End-Envelope Both apply the Envelope of the current component as End- and as Start-Envelope Frames number of frames used for morphing Frame current frame displayed in view-mode MirrorX mirror the current Envelope along the x-axis MirrorY mirror the current Envelope along the y-axis MirrorXY flip the current Envelope along the diagonal MoveX shift the current Envelope by the specified amount in x-direction MoveY shift the current Envelope by the specified amount in y-direction Amount shift-value File file used for loading/saving envelopes Load load an Envelope Save save the current Envelope to disk There are two modes: the View- and the Edit-mode. In Edit-mode all changes are applied, in view mode the morphing of the splines is visualized. In this mode you can change the current-frame- number both using the scrollbar and the "Frame"-gadget. If you want to create your Envelopes using the @{"Envelope-Window" link EnvelopeWindow} the only restriction is that all values must be in the range 0..255. The first point must have the x-coordinate 0, the last one the coordinate 255. @endnode @node opMedianFilter @{b}MedianFilter-Operator@{ub} This operator applies a median-filter to the image. (In the most cases there will be no visible change.) @{b}Parameters@{ub} Input input buffer Ouput output buffer Rect size of the rectangle scanned for every pixel @endnode @node opNegative @{b}Negative-Operator@{ub} This operator turns the colors of an image into negative ones. @{b}Parameters@{ub} Input input buffer Ouput output buffer @endnode @node opNoise @{b}Noise-Operator@{ub} This operator applies random noise to an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer Intensity intensity of the noise in color-units Probability noise-probability Seed start-value for the random number generator @endnode @node opOilTransfer @{b}OilTransfer-Operator@{ub} This operator applies the OilTransfer-algorithm to an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer Rect size of the rectangle scanned for every pixel @endnode @node opPosterise @{b}Posterise-Operator@{ub} This operator reduces the number of bits per byte for every pixel of the image. @{b}Parameters@{ub} Input input buffer Ouput output buffer Bits number of bits (1..7) per byte, a value 8 which is the normal case would cause no change @endnode @node opSwapRGB @{b}SwapRGB-Operator@{ub} This operator swaps the color-channels of an image @{b}Parameters@{ub} Input input buffer Ouput output buffer Mode swap-mode, all possible permutations of RGB @endnode @node opThreshold @{b}Threshold-Operator@{ub} This operator converts an image into black&white using a grayscale-level, this may be especially useful for the creation of alpha-channels. @{b}Parameters@{ub} Input input buffer Ouput output buffer Level grayscale-level, all pixels with a higher brightness ar turned into white ones, all other in black ones @endnode @node opBump @{b}Bump-Operator@{ub} This operator uses a 2nd image to add height-information which is visualized using a single lightsoure to an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer HeightMap image used to create the height-information Amount height-value corresponding to a brightness of 255 LightX, LightY, LightZ coordinates of the lightsource Intensity light-intensity Left left edge of the height-map Top top edge of the height-map @endnode @node opCube @{b}Cube-Operator@{ub} This operator wraps an image onto a cube. @{b}Parameters@{ub} Input input buffer (image-buffer or 3D-buffer) Ouput output buffer (image-buffer or 3D-buffer) Zoom zoom factor for the whole image (-10...10) CentreX, CentreY centre for zooming and rotating (in pixels) CamX, CamY, CamZ camera-position (in pixels) Rotate axis-pair to rotate around/disable rotating Alpha first rotation angle (in degrees) Beta second rotation angle (in degrees) Light toggle light on/off LightX, LightY, LightZ light-position (in pixels) Intensity light-intensity (0.0...1.0) Ambient intensity of the ambient light (0.0...1.0) Hardness add gloss to the surface (0.8...1.0) Size size of the cube The image is sliced into 6 parts (2 rows, 3 columns) which are mapped onto the six surfaces of the cube. To create a cube with 6 different images simply compose them together and use the result as input for the Cube-operator. To speed up the generation of previews modify the "3DQuant"-parameter in the @{"Processor-Window" link ProcessorWindow}. @endnode @node opLWOB @{b}LWOB-Operator@{ub} This operator reads in a Lightwave-object and renders it using flat shading. The main purpose of this PlugIn is to produce preview images for object-catalogues. Therefore the filename can be plotted directly to the generated image and whole drawers can be processed easily. @{b}Parameters@{ub} Ouput output buffer Zoom zoom factor for the whole image (-10...10)) CentreX, CentreY centre for zooming and rotating (in pixels) CamX, CamY, CamZ camera-position (in pixels) Rotate axis-pair to rotate around/disable rotating Alpha first rotation angle (in degrees) Beta second rotation angle (in degrees) Light toggle light on/off LightX, LightY, LightZ light-position (in pixels) Intensity light-intensity (0.0...1.0) Ambient intensity of the ambient light (0.0...1.0) Hardness add gloss to the surface (0.8...1.0) Faces draw the faces single- or double-sided Text toggle the kind of text to be plotted to the image: off : no text will be generated small: plot the filename without the path full : plot the full filename with path Select Font select the font for the generated string File object-file or drawer to be scanned Width, Height dimensions of the image to create BGRed, BGGreen, BGBlue background color TRed, TGreen, TBlue text color If the specified input-file cannot be found the path is scanned as drawer to create an alphabetically sorted filelist. Later the n-th item of this list is processed at frame n. See the @{" Tutorial " link Tutorials} for an example. @endnode @node opPerspective @{b}Perspective-Operator@{ub} This operator adds perspective to an image. @{b}Parameters@{ub} Input input buffer Ouput output buffer Zoom zoom-factor for the whole image CentreX, CentreY centre for rotating and zooming CamX, CamY, CamZ camera-position Rotate axis-pair to rotate around/disable rotating Alpha first rotation angle Beta second rotation angle Light toggle lightsource on/off LightX, LightY, LightZ light-position Dimish dimishing-radius, at this distance from the light-position the intensity has fallen off to the the half @endnode @node opWater @{b}Water-Operator@{ub} This operator applies a threedimensional anharmonic water-wave to an image. @{b}Parameters@{ub} Input input buffer (image-buffer or 3D-buffer) Ouput output buffer (image-buffer or 3D-buffer) Zoom zoom factor for the whole image (-10...10)) CentreX, CentreY centre for zooming and rotating (in pixels) CamX, CamY, CamZ camera-position (in pixels) Rotate axis-pair to rotate around/disable rotating Alpha first rotation angle (in degrees) Beta second rotation angle (in degrees) Light toggle light on/off LightX, LightY, LightZ light-position (in pixels) Intensity light-intensity (0.0...1.0) Ambient intensity of the ambient light (0.0...1.0) Hardness add gloss to the surface (0.8...1.0) Faces draw the faces single- or double-sided Frame current frame Frames frame count describing a full cycle Times number of rings, values in the range 1..3 are are always a good choice Rings number of times the growing of rings is performed, after one cycle the 1st ring has the distance times*wavelength from the centre, values 2..10 give good results Axis direction of propagation: "X" : parallel to the x-axis "Y" : parallel to the y-axis "XY": radial propagation Amplitude wave-amplitude, this value should be always in the range 1..4 Wavelength wavelength OriginX, OriginY location of the wave-source Damping toggle damping on/off Damping damping-value moveXY specify if the deformation is applied to all components (x,y,z) or not. If this option is set there may occur some singularities ("bad points"), but this mode is very close to the reality. To speed up the generation of previews modify the "3DQuant"-parameter in the @{"Processor-Window" link ProcessorWindow}. @endnode @node opWave3D @{b}Wave3D-Operator@{ub} This operator applies a harmonic wave in the threedimensional space to an image. @{b}Parameters@{ub} Input input buffer (image-buffer or 3D-buffer) Ouput output buffer (image-buffer or 3D-buffer) Zoom zoom factor for the whole image (-10...10)) CentreX, CentreY centre for zooming and rotating (in pixels) CamX, CamY, CamZ camera-position (in pixels) Rotate axis-pair to rotate around/disable rotating Alpha first rotation angle (in degrees) Beta second rotation angle (in degrees) Light toggle light on/off LightX, LightY, LightZ light-position (in pixels) Intensity light-intensity (0.0...1.0) Ambient intensity of the ambient light (0.0...1.0) Hardness add gloss to the surface (0.8...1.0) Faces draw the faces single- or double-sided Frame current frame Frames number of frame describing a full cycle Amplitude wave-amplitude Wavelength wavelength Phase phase in degrees Axis direction of propagation: "X" : parallel to the x-axis "Y" : parallel to the y-axis "XY" : radial propagation in the xy-plane "Radial" : radial propagation in the xyz-space OriginX, OriginY position of the wave-source Damping toggle damping on/off Damping damping-value To speed up the generation of previews modify the "3DQuant"-parameter in the @{"Processor-Window" link ProcessorWindow}. @endnode @node opWrap @{b}Wrap-Operator@{ub} This operator wraps an image onto a sphere or a tube. An unique feature is the deformation of "unwrapped" portions of the image in "RADIUS"-mode. @{b}Parameters@{ub} Input input buffer (image-buffer or 3D-buffer) Ouput output buffer (image-buffer or 3D-buffer) Zoom zoom factor for the whole image Zoom zoom factor for the whole image (-10...10)) CentreX, CentreY centre for zooming and rotating (in pixels) CamX, CamY, CamZ camera-position (in pixels) Rotate axis-pair to rotate around/disable rotating Alpha first rotation angle (in degrees) Beta second rotation angle (in degrees) Light toggle light on/off LightX, LightY, LightZ light-position (in pixels) Intensity light-intensity (0.0...1.0) Ambient intensity of the ambient light (0.0...1.0) Hardness add gloss to the surface (0.8...1.0) Faces draw the faces single- or double-sided Axis wrap axis: "X" : wrap the image onto a tube along the x-axis "Y" : wrap the image onto a tube along the y-axis "XY": wrap the image onto a sphere OriginX,OriginY origin of the sphere/tube Amount wrap-amount Radius sphere/tube-radius Method method used for wrapping: "RADIUS": create a sphere/tube of the radius specified, wrap the image onto it and deform the unwrapped portions according to the shape "AMOUNT": create a sphere/tube to fit the whole wrapped image, the specified amount-value specifies the amount of wrapping in percent To speed up the generation of preview modify the "3DQuant"-parameter in the @{"Processor-Window" link ProcessorWindow}. @endnode @node opARexx @{b}ARexx-Operator@{ub} This operator makes it possible to exchange images with other applications. The basic concept is to produce an ARexx-script which causes the application to load, process and save a temperary image created by Wildfire. @{b}Parameters@{ub} Input input buffer Ouput output buffer Port ARexx-port of the application Temp-File path for the temperorary image to be created Add add a line to the ARexx-script Kill kill the selected line Up move the selected line up Down move the selected line down Clear clear the whole script Add Variable add a variable-entry to the selected line Import load a previously saved script Export save the current script to disk A "normal" script should contain the three parts: -loading of the temporary image created by Wildfire -processing of this image -saving of the result The 3rd part is the only important. Every line of the script has to be entered in the format of a C-printf-command. This allows one to use Envelopes in such an ARexx-script. The basic syntax is as follows: "",arguments (The enclosing '"'-characters are important.) Three formats are supported: "%s" - for strings "%d" - for integer parameters "%f" - for float parameters The number of format-specifiers must be always equal to the number of arguments. Any special formats-strings like "%.4lf" are not supported. Examples: line to be entered: line generated by Wildfire: "integer: %d",10.3 integer: 10 "float: %f",10.3 float: 10.3 "i: %d, f: %f, s: '%s'",4,3,str i: 4, f: 3.0, s: 'str' To use an Envelope simply enter it's name as argument, rounding is performed if you specify "%d" as corresponding formatstring. The filename of the temporary image can be omitted using the predefined argument "tempfile". Now let's create a working example. Assume you want to have ADPro to halve your images and to apply an Antique-effect to the result. At first you have to set the path of your application (which will be started automatically if it's port cannot be located) from within the @{" Preferences-Window " link PreferencesWindow}. After that you have to specify the portname, in this case "ADPro". At first entry in the script you should specify ADPro's default Loader: "lformat "universal"" Now the image can be loaded "load '%s'",tempfile Apply the effects: "operator halve" "operator antique" Specify the the Saver to use: "sformat "iff"" Save the image: "save '%s' raw",tempfile That's all. Now you should save this script "lformat "universal"" "load '%s'",tempfile "operator halve" "operator antique" "sformat "iff"" "save '%s' raw",tempfile as "reference-script". For further purposes only the "operator"-lines have to be replaced. @endnode @node opComment @{b}Comment-Operator@{ub} This operator simply allows you to add comments to the Processor-script. @{b}Parameters@{ub} String the comment @endnode @node opExample @{b}Example-Operator@{ub} This operator acts as an example for the developer-kit. It turns all pixels which have a brightness larger than a specified value into grayscale. @{b}Parameters@{ub} Input input buffer Ouput output buffer Switch1 not used Switch2 not used IntVal1 not used IntVal2 grayscale-level FloatVal1 not used FloatVal2 not used @endnode @node opRaster @{b}Raster-Operator@{ub} This operator applies a black raster to an image. The main purpose of this PlugIn is to reduce the size of delta-compressed animations without loosing too much details. @{b}Parameters@{ub} Input input buffer Ouput output buffer @endnode @node opText @{b}Text-Operator@{ub} This operator renders text in various styles. Unlike to other programs whole text-files can be used and edited. @{b}Parameters@{ub} Ouput output buffer Style render-style: "NORMAL ": use the font without applying any changes, this method should be selected using color-fonts "OUTLINE": draw outlines of the selected font "EMBOSS ": produce a threedimensional look Adjust text-adjustment, this setting has only an effect when plotting more than one line of text Red, Green, Blue text-color BGRed, BGGreen, BGBlue background-color Strength thickness of the outline drawed around the text in "OUTLINE"- and "EMBOSS"-mode Intensity light-intensity LightX, LightY, LightZ light-position HSkip additional space between two lines Select Font select the font to use for all lines Add add a line of text Kill delete the selected line Up move the selected line up Down move the selected line down Clear clear all lines of text Import import text from a file Export save the current text to disk @endnode @NODE beispiele "5. Examples" @{b}5. Examples -----------------------------------------------------------------@{ub} (i) An animation will be displayed in negative colors and a smaller version of the anim will be placed in the right colors over the `negative` animation Scheme: *STREAM to negativ and save to TEMP1 *STREAM to halve and save to STREAM *Compose TEMP1 as background and STREAM as foreground and save to STREAM ARexx-Program: pc_add negative stream temp1 pc_add scale stream stream width/2 height/2 pc_add compose width/3 height/3 100 temp1 stream stream none NOTE: *The ARexx-notation is very useful. So you can take the examples as macros and you`ll learn how to use the ARexx port of Wildfire, too. *Of course you should try out the examples inside the program, first. Just start @{" WILDFIRE " link WildFire.guide/MAIN}, klick on the PROCESSOR-GADGET, and push the ADD BUTTON. Doubleclick on NEGATIVE and doubleclick on the NEGATIVE entry in the script. Now you can select STREAM as INPUT and TEMP1 as output. Do the needed things for the other 2 commands, too. *width and height are the height and the width of the animation or the single-pictures. With the ARexx commands "T_ANIMINFO" or "T_PICINFO" you can get the needed details. (ii) An animation will be placed on a colored background using a white border with shadow. Scheme: *create a colored background with width+80 and height+80 in "TEMP1" *create a white picture with width+20 and height+20 in "TEMP2" the border-size is 10 pixels (20/2) *create a black picture with width+20 and height+20 in "TEMP3" the border-size is 10 pixels, too *place the black picture on the colored background with offset 40x40 pixels *place the white picture on the colored background (now with the black picture on it) with offset 30x30 *all these things you have to do ONLY 1 time, the result-picture will be saved to buffer "TEMP1" and will NOT be changed anymore! So we can tell @{" Wildfire " link WildFire.guide/MAIN} that it has to do this effect only for the first frame! *every picture from the animation will be placed with offset 40x40 on the created colored picture with black and white border. ARexx-Programm: /* create background and save to TEMP1 */ pc_add createimage temp1 width+80 height+80 255 0 0 255 255 0 0 255 0 0 0 255 pc_add createimage temp2 width+20 height+20 255 255 255 255 255 255 255 255 255 255 255 255 pc_add createimage temp3 width+20 height+20 0 0 0 0 0 0 0 0 0 0 0 0 pc_add compose 40 40 100 temp1 temp3 temp1 none pc_add compose 30 30 100 temp1 temp2 temp1 none /* only do this operations at frame 1 */ pc_select createimage 1 pc_to 1 pc_select createimage 2 pc_to 1 pc_select createimage 3 pc_to 1 pc_select compose 1 pc_to 1 pc_select compose 2 pc_to 1 /* compose STREAM with TEMP1 for every animation-picture */ pc_add compose 40 40 100 temp1 stream stream none @ENDNODE @remark /*************************************************************/ @remark /* @remark Developer @remark */ @remark /*************************************************************/ @node Developer If you are interested in developing addional PlugIns (savers, operators or general PlugIns) for Wildfire please contact the author at "epgbc@cluster1.urz.Uni-Halle.DE". If there are at leat 10 requests I will start to create a developer-kit including working examples. @endnode @remark /*************************************************************/ @remark /* @remark ARexx @remark */ @remark /*************************************************************/ @node ARexx @{b}The ARexx-port@{ub} The ARexx-port is another powerful feature of WildFire which allows you -to use all features from within other programs -to enhance the GUI with your own windows without -to write own ARexx-applications which operate like the program itself Example: You have designed a nice special effect like a transition between three animations or whatever. Now you want to integrate this nice feature into Wildfire as a "natural feature". This is easy ! All you have to do is to design a so-called "Custom-window" with buttons, string-gadgets, switches, ... and to write the procedure itself. @{b}Topics:@{ub} @{" Usage " LINK ARexxUsage} @{" Error-Messages " LINK ARexxErrors} @{" Custom-windows " LINK ARexxCWindows} @{" Commands " LINK ARexxCommands} @endnode @node ARexxUsage The name of the ARexx-port is equal to the name of the publicscreen opened by Wildfire. For the first running copy of the programm the port is named "Wildfire", for the second "Wildfire.1" and so on. I don't think that's very usefull to run more copies at one time - but it's possible. The command-hierarchy is equal to the window-hierarchy. This makes it very easy for you to find out the right name for a particular command. Every command consists of the hierarchy-identifier and the function-name, e.g. the "Play"-button of the Player-window is named "P_PLAY". Most of the arguments are strings or integer-values. It's recommended to enclose strings into "'"-characters otherwise they are converted to uppercase by the ARexx-system. There are three ways to invoke ARexx-commands: 1. scripts 1a) called as macros from Wildfire after pressing one of the function-keys 1b) started from a shell 2. direct commands 3. external programs Direct commands are nice to try out a special command, e.g., if you want to check out the "PL_APPENDDIR"-command you may type in a shell- window: rx "address 'Wildfire' pl_appenddir 'data:grafix/frames'" Another way to test single commands is to use the "Command"-PlugIn. An input string "pl_appenddir 'data:grafix/frames'" would cause the same result as the example shown above. The advantage of the use of the Command-PlugIn is the fact that it's faster because it doesn't use ARexx and displays the results of the in the same window. (ARexx-errors sometimes are cryptic.) @endnode @node ARexxCWindows Custom-windows are another powerful feature of Wildfire. You can create as much own windows as you want, they can be loaded, saved, opened, closed, deleted, ... at any time. So it's possible to create Toolmanager-like docks on the Wildfire-screen which can be loaded at startup. But the main purpose is to give you the possibility to enhance the program easily and to fit it to your needs. Window-elements ------------------------------------------------------------------- Custom windows can contain -buttons -string-gadgets -switches -lines -boxes and -texts. All these elements remain to the window as long as you don't kill them. But you have the possibility to apply graphical elements which are not stored as structures to the window. So you could create an own progress-bar or a function-plotter.. Attention: If you want to have spaces in you window- or gadget-names you have to use a special character (code 160). (This restriction is due the command-parsing.) Example: space='a0'x wnd="Transition.rexx" || space || "V0.3" Window-coordinates ------------------------------------------------------------------- Because Wildfire has a fontsensitve GUI you can't use absolute coordinates to specify window-elements. So you have to design your windows using a topaz.8-font to ensure that they look perfect for example with a times.24-font. If you want to design a very difficult window with 500 gadgets, 300 bevelboxes, ... it's seems to be no bad idea to use GadToolsBox . Using this nice program you can drag and size your gadgets in an easy way - just take down the coordinates after finishing it. A simple example ------------------------------------------------------------------- The following example called "ConvertPics.rexx" opens a window which lets you specify a range of your current picture-list and has a "Convert"-button. This makes is possible to convert only a small part of the picture-list which is very usefull if you want to test a very complex process. 1. Program-structure (i) create the window, initialize the parameters (ii) perform an endless loop receiving messages: 1. check for pressed gadgets -> start filerequester, read gadget-contents 2. check for the closegadget -> exit 3. check for the start-button -> check the parameters -> do it 2. Program /* Are we right ? */ if ~show('P','Wildfire') then do say " Error: The Wildfire-program must be started before executing this script." exit end /* Initialize the global variables */ address "Wildfire" options results wnd="Convert" from=1 to=1 /* Create the window */ cw_kill wnd cw_add wnd 309 70 /* Create the Gadget */ cw_addgadget wnd string 202 11 84 "From" cw_addgadget wnd string 202 27 84 "To" cw_addgadget wnd button 25 46 261 "Convert" /* It's important to open the window before setting the gadgets */ cw_open wnd cw_setgadget wnd "From" from cw_setgadget wnd "To" to /* main loop */ do forever /* check if the window is still open */ cw_isopen wnd qt=result /* no: leave the script */ if qt=0 then call cleanup /* wait for gadgets */ cw_wait wnd gadget=result /* which gadget was pressed */ if gadget="From" then do /* get the "from"-value from the gadget */ cw_getgadget wnd "From" from=result end else if gadget="To" then do /* get the "to"-value from the gadget */ cw_getgadget wnd "To" to=result end else if gadget="Convert" then do /* now let's do it */ c_convertpics from to end end cleanup: cw_kill wnd exit GadToolsBox is Copyright 1991-93 Jaba Development @endnode @node ARexxErrors There are 4 error-messages which will be shown together with the command in the default CON:-window: 1: wrong number of arguments 2: wrong arguments 3: unknown command 4: command failed Most of the commands are valid everywhere, but there are exeptions, e.g. if you haven't defined any variable you can't open the envelope-window. This would cause error 4. Normally you can access all program functions without opening any of the windows, but there are the following exceptions: -Timecodes-, AnimInfo-, Envelope- and EnvelopeAdvanced-commands require that the corresponding Window was opened (This is due the internal data-structure and no error or similar.) If the program executes an ARexx-command all requesters except the one invoked by the "M_MESSAGE"-command are turned off, but the requester-messages are shown in the Log-Window. @endnode @node ARexxCommands The command-list below shows all available commands, values enclosed into brackes are alternative keywords. Main: M_EXIT M_WAIT secs M_MESSAGE text M_REQUEST text (res=0: o.k.) M_OPENCONVERTER M_CLOSECONVERTER M_OPENPROCESSOR M_CLOSEPROCESSOR M_OPENEDITOR M_CLOSEEDITOR M_OPENPLAYER M_CLOSEPLAYER M_OPENPREFS M_CLOSEPREFS M_OPENINFO M_CLOSEINFO M_MOVE x y M_TOFRONT M_TOBACK M_OPENTMAKER M_CLOSETMAKER M_OPENIMOPTIONS M_CLOSEIMOPTIONS M_ADDICON file M_CLEANUP M_LOAD M_SAVE Tools: T_DELPICTURELIST T_GETNUMBER title [preset] T_GETSTRING title [preset] T_GETFILE title [preset] T_GETDRAWER titlee [preset] T_ANIMINFO name (0=o.k.) T_PICINFO name (0=o.k.) T_GETWIDTH T_GETHEIGHT T_GETDEPTH T_GETCOLORS T_GETFRAMES T_GETANIMDRAWER T_GETPICDRAWER T_GETMODDRAWER T_GETROOTDRAWER T_PEXTENSION extension T_REQSTATUS (ON|OFF) Prefs: PR_PLAYERSCREEN name PR_SCREENMODE id width height depth PR_SCREENDEPTH depth PR_LOADPREFS PR_SAVEPREFS PR_OPENPATHS PR_CLOSEPATHS PR_OPENMACROS PR_CLOSEMACROS PR_DCLICKTIME val PR_STATISTICS (ON|OFF) PR_EXPERTMODE (ON|OFF) PR_BRUTALBLIT (ON|OFF) PR_MOVE x y Paths: PT_ANIMATIONDRAWER name PT_PICTUREDRAWER name PT_SOUNDDRAWER name PT_ROOTDRAWER name PT_YAFAPLAYER name PT_ANIMPLAYER name PT_MPEGPLAYER name PT_VIEWER name PT_MOVE x y Info: I_FREEMEM I_MOVE x y Text: TXT_TEXT file TXT_TEXTNC file TXT_MOVE x y TXT_CLOSE TXT_WAIT TXT_CENTRE Player: P_FILE [name] P_BUFFERS num P_ABUFFER num P_DISPLAY (NORMAL|ZOOMED|DITHERED) P_CACHING (ON|OFF) P_OUTPUT (HARDWARE|WINDOW|BGWINDOW|SCREEN) P_WAIT (ON|OFF) P_PLAY [from to] P_MOVE x y P_OPENANIMINFO P_CLOSEANIMINFO P_OPENTIMECODES P_CLOSETIMECODES AnimInfo: AI_MOVE x y AI_EXPORT name AI_IMPORT num Timecodes: TC_RANGE from to step TC_IMPORT name TC_EXPORT name TC_TIMERANGE num TC_MOVE x y Editor: E_AADD name E_AKILL E_AREPLACE name E_AINFO E_ASELECT name E_ASELECTNEXT E_ASELECTPREV E_AFROM from E_ATO to E_AUP E_ADOWN E_MADD name (MODULE|SAMPLE|EXECUTABLE) E_MKILL E_MREPLACE name E_MEDIT E_MSELECT name E_MSELECTNEXT E_MSELECTPREV E_MUP E_MDOWN E_OPENPROFILE E_CLOSEPROFILE E_OPENFILMCONTROL E_CLOSEFILMCONTROL E_PLAYALL E_PLAYSEL E_SAVEALL E_FILENAME [name] E_CLEAR E_EXPORT E_LOAD E_SAVE E_INSERT file E_APPEND file E_MOVE x y EditorAnimInfo: EAI_DISPLAY (NORMAL|ZOOMED|DITHERED) EAI_CACHING (ON|OFF) EAI_BUFFERS num EAI_ABUFFER num EAI_SPEED num EAI_MOVE x y EAI_CLOSE ModuleOptions: MO_TEST MO_STOP MO_CLOSE MO_MOVE x y SampleOptions: SO_TEST SO_STOP SO_CHANNEL (LEFT0|RIGHT0|LEFT1|RIGHT1) SO_REPEAT num SO_VOLUME num SO_CLOSE SO_MOVE x y CommandOptions: CO_TEST CO_CLOSE CO_MOVE x y Processor: PC_ADD type [options] SCALE in out width height [(PIXELS|PERCENT) (IGNORE|TAKEWIDTH|TAKEHEIGHT)] CROP in out left top width height ALPHA in alpha out left top COMPOSE left top mix back=(STREAM|TEMPx) fore=(STREAM|TEMPx) dest=(STREAM|TEMPx) (NONE|COLOR|INRANGE|OUTRANGE) [red1 green1 blue1 [red2 green2 blue2]] BALANCING in out red green blue bright contrast gamma DISPLACE in out radius probability seed ROTATE in out centreX centreY radius amount zoom NEGATIVE in out COLORTOGRAY in out (AVERAGE|LUMINANCE|CUSTOM) [red] [green] [blue] SHIFTLINES in out (HORIZONTAL|VERTICAL) shift [(NORMAL|POSITIVE|NEGTIVE) amount probability seed] SAVETEMP buffer LOADTEMP buffer KILLTEMP buffer LOADIMAGE out sequence repeat shift CREATEIMAGE out width height [red0 green0 blue0 ... red3 green3 blue3] PIXELIZE in out width height (ON|OFF) [(XY|X|Y) size red green blue dLeft dRight dTop dBottom] CONVOLVE in out mix shift (file|matrix) TWIRL in out (IN|OUT) centreX centreY radius amount power zoom PERSPECTIVE in out centreX centreY alpha beta (XY|YZ|ZX) camX camY camZ zoom [lightX lightY lightZ dimish] BUMP in heightMap out left top amount lightX lightY lightZ intensity TEXT out red green blue bgRed bgGreen bgBlue (NORMAL|OUTLINE|EMBOSS) (LEFT|RIGHT|CENTERED) hSkip font fontSize italic bold underline color textFile [strength [lightX lightY lightZ intensity]] ANTIQUE in out HALVE in out FLIP in out (X|Y|XY) MOTIONBLUR in out deltaX deltaY ROTATEBLUR in out centreX centreY amount radius BLACKHOLE in out centreX centreY amount radius MAGNET in out centreX centreY amount damping WAVE in out centreX centreY (X|Y) frames frame zoom damping (ON|OFF) amplitude wavelength phase shift AREXX in out port tempfile script COMMENT [string] PLASMA out width height dimension seed EMBOSS in out direction REPLACECOMP in1 in2 out (RED|GREEN|BLUE) OILTRANSFER in out rect MEDIANFILTER in out rect ADD in1 in2 out (ADD|SUBTRACT) RASTER in out SWAPRGB in out (RBG|GRB|GBR|BRG|BGR) NOISE in out intensity probability seed POSTERISE in out bits ROLL in out deltaX deltaY (ON|OFF) CARTESIAN2POLAR in out r0 phi0 CUBE in out centreX centreY zoom (XY|YZ|XZ|NONE) alpha beta camX camY camZ (ON|OFF) lightX lightY lightZ intensity hardness ambient size WRAP in out centreX centreY zoom (XY|YZ|XZ|NONE) alpha beta camX camY camZ (ON|OFF) (NORMAL|DOUBLE) lightX lightY lightZ intensity hardness ambient (RADIUS|AMOUNT) radius amount (X|Y|XY) WATER in out centreX centreY zoom (XY|YZ|XZ|NONE) alpha beta camX camY camZ (ON|OFF) (NORMAL|DOUBLE) lightX lightY lightZ intensity hardness ambient frames frame (X|Y|XY) originX originY times rings amplitude wavelength (ON|OFF) damping doXY=(ON|OFF) WAVE3D in out centreX centreY zoom (XY|YZ|XZ|NONE) alpha beta camX camY camZ (ON|OFF) (NORMAL|DOUBLE) lightX lightY lightZ intensity hardness ambient frames frame (X|Y|XY) originX originY amplitude wavelength phase (ON|OFF) damping THRESHOLD in out level SHEAR in out originX originY amount (X|Y) zoom damping (ON|OFF) LWOB out centreX centreY zoom (XY|YZ|XZ|NONE) alpha beta camX camY camZ (ON|OFF) (NORMAL|DOUBLE) lightX lightY lightZ intensity hardness ambient file width height PC_KILL PC_CLEAR PC_SELECT type [which] PC_UP PC_DOWN PC_FROM num PC_TO num PC_STEP num PC_OPENEDIT PC_MOVEEDIT x y PC_CLOSEEDIT PC_MODE (COLOR|HAM6|HAM8) PC_DITHER (NONE|FS) PC_SMOOTHING (ON|OFF) PC_DEPTH num PC_CSKIP num PC_FILENAME [name] PC_LOAD PC_SAVE PC_OPENPCSINGLEPICTURE PC_CLOSEPCSINGLEPICTURE PC_OPENVARIABLES PC_CLOSEVARIABLES PC_OPENPALETTE PC_CLOSEPALETTE PC_MOVE Variables: V_ADD name V_SELECT name V_KILL V_RENAME V_SELECT name V_ENVELOPE V_FILENAME V_SAVE V_LOAD V_CLEAR V_MOVE Envelope: EV_XRANGE xmin xmax EV_YRANGE ymin ymax EV_VIEWALL EV_SCROLLUP EV_SCROLLDOWN EV_SCROLLLEFT EV_SCROLLRIGHT EV_SELECT num EV_SELECTNEXT EV_SELECTPREV EV_KILL EV_ADD xval yval EV_MOVE xval yval EV_DRAG xval yval steps EV_LOAD name EV_SAVE name EV_INTERPOLATION (SPLINE|BEZIER|LINEAR) EV_USE EV_CANCEL EV_OPENADVANCED EV_MOVE SinglePicture: PCS_INPUT name PCS_OUTPUT name PCS_TEST [time] PCS_SAVE PCS_SAVERENDERED PCS_APPLYDIMENSIONS PCS_FRAME num PCS_MOVE PCS_SCREENMODE id PCS_PREVIEWWIDTH val PCS_PREVIEWDEPTH val PCS_PREVIEW (ENABLED|DISABLED) EnvelopeAdvanced: EVA_RANGE from to step EVA_SCALE EVA_SHIFT EVA_LOADCURVE name EVA_SAVECURVE name EVA_LOADTIMECODES EVA_SAVETIMECODES EVA_XVAL val EVA_YVAL val EVA_CLOSE EVA_MOVE Converter: C_INPUTTYPE (ANIMATION|YAFAANIM|BLACKFRAMES) C_INPUTEXPORT C_INPUTFILENAME name C_OUTPUTTYPE (PICTURES|YAFAANIM|IFFANIM|NONE) C_OUTPUTEXPORT C_OUTPUTFILENAME name C_ANNOTATION (ON|OFF) C_ANNOFILENAME [name] C_ANNOSTRING [string] C_LOADSESSION C_SAVESESSION C_CONVERT C_CONVERTPICS first last C_OPENINPUTOPTIONS C_OPENOUTPUTOPTIONS C_CLOSEINPUTOPTIONS C_CLOSEOUTPUTOPTIONS C_PREVIEW (NONE|WINDOW|SCREEN) C_PROCESSOR (ENABLED|DISABLED) C_MOVE YAFAOptions: YO_IMAGEDATA (RAW|CHUNKY) YO_DELTA (NONE|BYTE|WORD|LONG|BYTEBR|WORDBR|LONGBR) YO_COMPRESSION (NONE|XPK) YO_COMPRESSOR name YO_MODE mode YO_COLORMAP (UNLOCKED|LOCKED) YO_SPEED num YO_FORCETIMECODES (ON|OFF) YO_OPENANALYSIS YO_MOVE YO_APPLY name Analysis: A_FRAMES num A_TEST A_USE A_CANCEL A_MOVE ANIMOptions: AO_TYPE (ANIM5|ANIM7S|ANIM7L) AO_COLORMAP (UNLOCKED|LOCKED) AO_SCREENMODE mode AO_MOVE PictureOptions: PO_BASENAME name PO_SCREENMODE mode PO_SHIFT num PO_MOVE PO_TYPE (RENDERED|TRUECOLOR) CreateFrames: CF_WIDTH num CF_HEIGHT num CF_FRAMES num PictureList: PL_INSERT names PL_APPEND names PL_INSERTDIR name PL_APPENDDIR name PL_DUPLICATE times PL_SORT PL_CHECK PL_RANGE from to step PL_REMOVERANGE PL_TIMERANGE num PL_SHOW PL_SELECT name [which] PL_SELECTNEXT PL_SELECTPREV PL_OPENPICTUREINFO PL_CLOSEPICTUREINFO PL_MOVE Custom-Windows: CW_CLOSE name CW_OPEN name CW_MOVE name x y CW_ADD name width height CW_KILL name CW_ADDGADGET window (STRING|BUTTON|SWITCH) left top width name [action] CW_GETGADGET window name CW_SETGADGET window name value CW_WAITGADGET window name CW_ADDTEXT window left top pen text CW_ADDLINE window x1 y1 x2 y2 pen CW_ADDRECT window left top width height pen (NORMAL|FILLED|BBOX|BBOX2) CW_DRAWTEXT window left top pen text CW_DRAWLINE window x1 y1 x2 y2 pen CW_DRAWRECT window left top width height pen (NORMAL|FILLED|BBOX|BBOX2) CW_SAVE name CW_LOAD name CW_WAIT name CW_ISOPEN name Palette: PP_FILENAME PP_LOAD PP_SAVE PP_COLOR color red green blue PP_STATE (ENABLED|DISABLED) PP_MOVE x y FilmStrip: FC_PLAY file loops rows cols [left top] FC_FILE file FC_FILMFILE file FC_RANGE from to step FC_WIDTH width FC_SIZE rows cols FC_COLOR (ORIGINAL|GRAY) FC_UPDATE FC_CLEANUP FC_LOAD FC_SAVE FC_CONVERT FC_APPEND FC_SCROLL val (negative->scroll left) CRange: CR_FROM num CR_TO num CR_STEP num CR_STATE (ENABLED|DISABLED) IMOptions: IM_RESET IM_FILE file IM_TRASHCAN (KILLICON|DELETE) Icon-Saver: IC_Image1 file IC_Image2 [file] IC_ICON file IC_WIDTH width IC_DEPTH depth IC_COLOR (COLOR|GRAY) IC_CONVERT TMaker: TM_INPUT1 file TM_INPUT2 file TM_OUTPUT file TM_TEMP drawer TM_FRAMES frames TM_PREVIEW (NONE|WINDOW|SCREEN) TM_SHOWEXAMPLE (ON|OFF) TM_TYPE type subtype TM_CREATETEMPFILES TM_KILLTEMPFILES TM_PLAY TM_CONVERT TM_CREATEEXAMPLES @endnode @remark /*************************************************************/ @remark /* @remark Tutorials @remark */ @remark /*************************************************************/ @node Tutorials ############################################################################### # # # Sequencer-Tutorial 1 # # # ############################################################################### @{" 1. Introduction " LINK Einleitung} @{" 2. Hardware-Requirements " LINK Anforderungen} @{" 3. Tutorial 1 " LINK Tutorial} @ENDNODE @NODE Einleitung "1. Introduction" Welcome to the Sequencer Tutorial! This workshop will show you the fantastic possibilities of the Image Processor! You won`t trust your eyes when you see what you can do with this great program. As we are using the great BUILD-FROM-BLOCKS-concept you can change the project in an easy way to fit your personal needs. First inform yourself about the @{" Hardware Requirements " LINK Anforderungen}! @ENDNODE @NODE Anforderungen "2. Hardware Requirements" While installation you can choose between two different versions of this tutorial, depending on the hardware you use! "HALVE_SIZE" is aimed on users with something like the following configuration: CPU: MC68020/MC68030 RAM: 4 MB Fast, 2 MB Chip HD: 120 MB about 10 MB free Harddisk-space! The "HALVE_SIZE" tutorial even runs on STANDARD A1200 with only 2MB Chip Ram and no Fast Ram! The "NORMAL_SIZE" version of this tutorial can be used by the ones with more extended hardware like: CPU: MC68040/MC68060 RAM: 8 MB Fast, 2 MB Chip HD: 1 GB about 25 MB free Harddisk-space! Of course you don`t have to follow this rules, you may use the "NORMAL_SIZE" on an slow A1200 with 4MB Fast, too. Now lets start with the @{" Tutorial " LINK Tutorial}. @ENDNODE @NODE Tutorial "3. Tutorial" @{" 0. Story " LINK Story} @{" 1. Preface " LINK Teil0} @{" 2. Part 1 " LINK Teil1} @{" 3. Part 2 " LINK Teil2} @{" 4. Part 3 " LINK Teil3} @{" 5. Part 4 " LINK Teil4} @{" 6. Part 5 " LINK Teil5} @{" 7. Part 6 " LINK Teil6} @{" 8. Part 7 " LINK Teil7} @{" 9. Part 8 " LINK Teil8} @{" 10. Part 9 " LINK Teil9} @{" 11. Script " LINK Script} @ENDNODE @NODE Story "Story" Starting with 2 x 60 24Bit-Pictures "CHA" and "CHB" we want to create some animations using fading and special effects. Story: -"CHA" will be wiped into the picture -"CHA" will be played quite normal -"CHA" will be roteted (360 -"CHA" will be twirled -"CHB" flies into the picture in a smalle size -"CHB" will be scaled to full size -"CHA" will be fadet out and a little bit displaced -"CHB" will be played quite normal -"CHB" will be fadet out All session- and process files are stored in the same called directorys. To generate the nedded animations there are two possibilities: (f.i. animation "chab_wipe.yafa) - Using the graphical user interface: *converter: load the session file "chab_wipe.session" *converter: press the "Convert" gadget (or just press ) (the needed process file "chab_wipe.process" will be loaded by the sesssion file without user interaction.) - from shell "wf -s sessions/chab_wipe.session" You can generate all the animation using the session-files. There is even a scrit which will do this for you! Just start it from shell: execute wftut:halve_size/wf.bat This script looks like: wf -s wftut:halve_size/sessions/cha_wipe.session wf -s wftut:halve_size/sessions/cha.session wf -s wftut:halve_size/sessions/cha_rotate.session wf -s wftut:halve_size/sessions/cha_twirl.session wf -s wftut:halve_size/sessions/chab_wipe.session wf -s wftut:halve_size/sessions/chab_scale.session wf -s wftut:halve_size/sessions/chab_fade.session wf -s wftut:halve_size/sessions/chb.session wf -s wftut:halve_size/sessions/chb_fade.session (You see, all animations are generated from shell) But we want to learn how the processor works. That`s why you should make the animations yourself, following this tutorial! If you managed that you will know how to work with WIldfire and it will be eas for you to produce effects yourself! So first read the @{" Preface " LINK Teil0}! @ENDNODE @NODE Teil0 "Preface" If you work with the small version (HALVE_SIZE) then you can follow the steps written in the tutorial exactly. But if you want to use the full size (NORMAL_SIZE) version, you have to change the path names from wftut:halve_size/ ind wftut:normal_size/. Further on you have to use the sizes and coordinates written in []. Your actions are written in {} brackets. Both animations we are dealing with consits of 60 frames each. So the timedependent coordinates end with 60 for the last frame. First of all start Wildfire. {wf } Afterwards open the preferences window. {PREFERENCES} Change to the paths-selector. {PATHS} Use the following paths: {ANIMATIONS wftut:halve_size/results/} {PICTURES wftut:halve_size/frames/} {YAFA-PLAYER wf:YP} Save the preferences. {CLOSE Filenames/Drawers} {SAVE Prefs} {CLOSE Prefs} Now all needed selections are made, so lets come to @{" Part 1 " LINK Teil1}. @ENDNODE @NODE Teil1 "Part 1" cha_wipe.yafa Open the converter window. {CONVERTER} If you want to do it the easy way just load the session file! {LOAD Session cha_wipe.session} All settings are made automaticly, you jut need to start converting. {CONVERT} You can do this for all 9 animations but ... We want to get to know how the program works, so ... we will NOT use this files but do everything ourselves! Select Single Pictures as Input Type. {INPUT TYPE Pictures} Select YAFA Animation as Output Type. {OUTPUT TYPE YAFA Animation} Select the following YAFA Options: {RELATED OPTIONS} {IMAGE-DATA RAW} {COLORMAP UNLOCKED} {FORCE TIMECODES OFF} {SPEED 2} [3] {POST-COMPRESSION XPK} {Compressor FAST} {DELTA-COMPRESSION ByteBR} {Uncompressed Frames 1} {UC-Mode Delta} Close the YAFA-Options. {CLOSE YAFA-Options} Select {PREVIEW Screen} and {PROCESSOR Enabled} {INPUT RELATED OPTIONS} Add the directory with the 60 pictures for the CHA anim: {ADDDIR wftut:halve_size/frames/chA} {CLOSE Related Options} Choose the name for the animation: {OUTPUT Browse} {wftut:halve_size/results/cha_wipe.yafa} Open the {PROCESSOR} First of all we want the Animation CHA to fly from the left side into the screen. Furthermore we want to fade this animation. So we create a black screen as background. {ADD CREATEIMAGE} Now we edit create-image. {DOUBLECLICK CreateImage} (in the list) or {EDIT} Now we make the following selections: {WIDTH 176} [352] ... width of the Animation {HEIGHT 144} [288] ... height of the Animation {OUTPUT Temp1} ... buffer for the black picture Now we select for all 4 colors the rgb-values 0. The color-gadgets will be displayed in their right colors if you work on an 256 color-screen. Otherwise you will NOT see their right colors. Just look at the values, they have to be 0,0,0. ************************************************************ Note: To get the needed coordinates in a very easy way just do the following things: f.i. add CreateImage effect. Select the effect. (like described some lines {OPEN Single-Picture-Process} {INPUT wftut:halve_size/frames/cha/pic.0001} {APPLY DIMENSIONS} Using Apply Dimensions the sizes of the picture will be used for the effect. Thats for instance the size for the CreateImage effect and the centre coordinates for the twirl and rotate effect. ************************************************************ {CLOSE CreateImage-Options} Now we create some variables. {VARIABLES} {ADD left} {ADD mix} {DOUBLECLICK left} We are looking at the envelopes-window. Let`s add two points: {ADD PNT Klick into the window} {ADD PNT Klick into the window} The change the position of the first poin we select it: {KLICK on the 1. point} {X = 0} (just write it into the correspondending gadget) {Y = -160.00} Select the second point. {KLICK on the 2. point} {X = 5} {Y = 0} Select the 3. point. {KLICK on the 3. point} {X = 60} {Y = 0} Choose bezier as interpolation method. {INTERPOLATION bezier} For the following variables you follow these steps exactly. I use a short form of writing the down. Have a look at these examples for the variables you created a minute ago. Variable: left Points: 3 Nr. 1: 0, -160 Nr. 2: 5, 0 Nr. 3: 60, 0 Interpolation: bezier Lets come to the second variable. 2. Variable: Variable: mix Points: 3 Nr. 1: 0, 0 Nr. 2: 20, 100 Nr. 3: 60, 100 Interpolation: bezier {CLOSE Envelope} {CLOSE Variables} Now we add a compose effect: {ADD COMPOSE} {EDIT compose} {BACKGROUND Temp1} ... generated picture in Temp1 {FOREGROUND Stream} ... Animation in Stream {DESTINATION Stream} ... destination -> Animation {ALPHA none} ... Alpha Channel {GENLOCK none} {LEFT left} ... Using the gadget VAR you choose our created variable left as the value for the LEFT position of the animation. Within our 60 frames the front animation will move from the left side (-160) into the screen (0). {TOP 0} ... The animation will stay on the same heigth all the time. {MIX mix} ... Within the 60 frames we change the value of mix from 0 to 100. Mix 100 means you will only see the pictures in front of the background pictures - and these are the frames of the animation! {CENTREX off}... pics will NOT be centred {CENTREY off}... pics will NOT be centred {MODE Color} {DITHERING Floyd} {DEPTH 5} Now we made all settings, so press the CONVERT gadget in the converter window! {CONVERT} Depending on the speed of your computer you may drink a cup of coffee or just look how the animation is created. The 60 24-Bit pictures will be wiped, fadet, ditherd and saved in 5-Bit. From the @{" Part 2 " LINK Teil2} I will tell you only the important things as you should know by know how the whole thing is working! @ENDNODE @NODE Teil2 "Part 2" cha.yafa Now we create an animation without effects. So first remove all the effects form the processor-list. {PROCESSOR CLEAR} The following settings stay unchanged for the whole tutorial! {MODE Color} {DITHERING Floyd} {DEPTH 5} The input single-pictures stay the same as in part 1! Do not forget to change the output name into: {wftut:halve_size/results/cha.yafa} So lets start the converting! {CONVERT} @{" Part 3 " LINK Teil3} @ENDNODE @NODE Teil3 "Part 3" cha_rotate.yafa Now the CHA Animation will be rotated. Output-Name: {wftut:halve_size/results/cha_rotate.yafa} Variable: rotate Points: 2 Nr. 1: 0, 0 ... Start 0 Nr. 2: 60, 360 ... end 360 Interpolation: linear Let`s add a rotate effect in the processor: {ADD ROTATE} Make the following selections: {INPUT Stream} ... Input pictures {OUTPUT Stream} ... Output animation {CENTREx 88} [176] ... Centre of the picture. To get the centre use a calculator or: {SINGLE Picture} {BROWSE picture for the 60 CHA-picture} {APPLY DIMENSIONS} and so you get the centre-settings in the easy way! {CENTREY 72} [144] {RADIUS 120} [220] ... Radius for rotating {AMOUNT rotate} ... amount in degrees {ZOOM 1} ... zoom amount After this we can start the converting! Now come to @{" Part 4 " LINK Teil4}... @ENDNODE @NODE Teil4 "Part 4" cha_twirl.yafa Lets use the cool twirl effect. (do not forget the output name!) {wftut:halve_size/results/cha_twirl.yafa} Variable: rotate Points: 5 Nr. 1: 0, 0 ... Start 0 Nr. 2: 20, 100 Nr. 2: 30, 210 Nr. 2: 40, 100 Nr. 2: 60, 0 ... End 0 Interpolation: spline We add the twirl effect in the processor: {ADD TWIRL} We choose the following settings: {INPUT Stream} ... Input Pictures {OUTPUT Stream} ... Output animation {FALLOFF out} ... Direction of more power {CENTREX 88} [176] ... centre of the pictures {CENTREY 72} [144] {RADIUS 150} [220] ... twirl-radius {AMOUNT rotate} ... degrees {POWER 1} ... Power stays the same {ZOOM 1} ... zoom-amount The twirl effect is very time-consuming. Start the converting and if you have a slow amiga just drink a can of coffee :-) After this interesting effect we go on with @{" Part 5 " LINK Teil5}. @ENDNODE @NODE Teil5 "Teil5" chab_wipe.yafa Now, for the first time, we will see two animations on the screen. CHA will be played in the background and CHB will be moved from the top left corner to the middle of the screen and zoomed to halve of their size. {wftut:halve_size/results/chab_wipe.yafa} Variable: breite Points: 2 Nr. 1: 0, 0 ... start-width 0 Nr. 2: 60, 88 [176] ... end-width 88 (176/2) Interpolation: linear Variable: hoehe Points: 2 Nr. 1: 0, 0 ... start-height 0 Nr. 2: 60, 72 [144] ... end-height 72 (144/2) Interpolation: linear Variable: left Points: 2 Nr. 1: 0, 0 ... start left Nr. 2: 60, 44 [88] ... end in the middle (coordinate of the left side of the animation) Interpolation: linear Variable: top Points: 2 Nr. 1: 0, 0 ... start at the top Nr. 2: 60, 36 [72] ... end in the middle Interpolation: linear Now we add the following effects {ADD LOADIMAGE} {ADD SCALE} {ADD COMPOSE} We make the following selections: Loadimage: {SEQUENCE wftut:halve_size/frames/chB/pic} {OUTPUT Temp1} {REPEAT AT 60} This command loads the file called 'pic.xxxx' with xxxx as the picture of the animation which is generated. So if the processor generates the first picture of the anim LOADIMAGE will load pic.0001. For pic 60 of the anim pic.0060 will be loaded. With repeat you choose which is the last picture. Afterwards LOADIMAGE will restart the index with 1. We use the buffer Temp1 for loading. With the 8 Buffers and the Strem we can combine 9 animations in an very easy way! Scale: {INPUT Temp1} ... input picture {OUTPUT Temp1} ... Output picture {WIDTH breite} ... width of the picture {HEIGHT hoehe} ... height of the picture {TYPE pixels} ... Values in Pixel {ASPECT ignore} ... Aspect will be ignored The temp-picture from the CHB anim will be scaled to the size we set in the variables "breite" and "hoehe". Compose: {BACKGROUND Stream} ... backgrund pictures from animation CHA {FOREGROUND Temp1} ... foregrund pictures from animation CHB {DESTINATION Stream} ... output to the Stream {ALPHA none} ... Alpha chanal {LEFT left} ... left Position {TOP top} ... top oben {MIX 100} ... Mix = 100 ... you see only the anim in front! The background of the animation CHB is black. We want the background of the CHB anim to be masked out, so we see the anim CHA in the background. {CENTREX off} ... pics will NOT be centred {CENTREY off} ... pics will NOT be centred {GENLOCK SingleColor} ... you can see through one color {ALL RGB-VALUES 0} ... we choose the black color! Ready, steady, convert! Let`s move to @{" Part 6 " LINK Teil6}. @ENDNODE @NODE Teil6 "Part 6" chab_scale.yafa This animation part is almost like the chab_wipe.yafa anim! Only the size and position of the chb pictures differ! {wftut:halve_size/results/chab_scale.yafa} Variable: breite Points: 2 Nr. 1: 0, 88 [176] ... halve size at the start Nr. 2: 60, 176 [352] ... full size at the end! Interpolation: linear Variable: hoehe Points: 2 Nr. 1: 0, 72 [144] ... halve size at the start Nr. 2: 60, 144 [288] ... full size at the end! Interpolation: linear Variable: left Points: 2 Nr. 1: 0, 44 [88] ... Start -> CHB centred Nr. 2: 60, 0 ... End -> CHB left Interpolation: linear Variable: top Points: 2 Nr. 1: 0, 36 [72] ... Start -> CHB centred Nr. 2: 60, 0 ... End -> CHB top Interpolation: linear Now add the following effects: {ADD LOADIMAGE} {ADD SCALE} {ADD COMPOSE} Make the following selections: Loadimage: {SEQUENCE wftut:halve_size/frames/chB/pic} {OUTPUT Temp1} {REPEAT AT 60} Scale: {INPUT Temp1} ... input picture {OUTPUT Temp1} ... Output picture {WIDTH breite} ... width {HEIGHT hoehe} ... height {TYPE pixels} ... Values in Pixel {ASPECT ignore} ... Aspect will be ignored Compose: {BACKGROUND Stream} {FOREGROUND Temp1} {DESTINATION Stream} {LEFT left} {TOP top} {MIX 100} {CENTREX off} ... pics will NOT be centred {CENTREY off} ... pics will NOT be centred {GENLOCK SingleColor} {ALL RGB-VALUES 0} Start CONVERT! Do you feel it? Move on to @{" Part 7 " LINK Teil7}. @ENDNODE @NODE Teil7 "Part 7" chab_fade.yafa Both animations are now full size. In front is chb. We can look through the background of chb and see cha. Cha will now be fadet out and a little bit displaced. {wftut:halve_size/results/chab_fade.yafa} Variable: probability Points: 3 Nr. 1: 0, 0 ... probability for displacing a point Nr. 2: 59, 0 Nr. 3: 60, 100 Interpolation: bezier Variable: brightness Points: 3 Nr. 1: 0, 0 ... brigthness of CHA. Nr. 2: 59, -10 Nr. 3: 60, -60 Interpolation: bezier Variable: radius Points: 3 Nr. 1: 0, 0 ... radius within the points will be displaced Nr. 2: 60, 20 Interpolation: linear We add the following effects ... {ADD LOADIMAGE} {ADD DISPLACE} {ADD BALANCING} {ADD COMPOSE} ... and make these selections: Loadimage: {SEQUENCE wftut:halve_size/frames/chB/pic} {OUTPUT Temp1} {REPEAT AT 60} Displace: {INPUT Stream} ... input Pictures of Anim CHA {OUTPUT Stream} ... output Stream {RADIUS Radius} ... displace-radius {PROBABILITY probability} ... displace probability {SEED probability} ... start value for randomize Balancing: {INPUT Stream} ... input picture {OUTPUT Stream} ... output picture {alles auf 0} {BRIGHT brightness} ... brightness of anim CHA Compose: {BACKGROUND Stream} {FOREGROUND Temp1} {DESTINATION Stream} {LEFT 0} {TOP 0} {MIX 100} {CENTREX off} ... pics will NOT be centred {CENTREY off} ... pics will NOT be centred {GENLOCK SingleColor} {ALL RGB-VALUES 0} After this settings we start converting. Let`s come to @{" Part 8 " LINK Teil8}. @ENDNODE @NODE Teil8 "Part 8" chb.yafa The animation will be generated without effects. {PROCESSOR CLEAR} The processor settings stay the same. {MODE Color} {DITHERING Floyd} {DEPTH 5} We have to use new INPUT-SINGLE PICTURES, as we don`t need the cha pictures anymore! {REMOVE RANGE} There should be no more entries. Now ... {ADDDIR wftut:halve_size/frames/chB} Select ... {wftut:halve_size/results/chb.yafa} as output name and convert. Now you reached the last part, @{" Part 9 " LINK Teil9}. @ENDNODE @NODE Teil9 "Part 9" chb_fade.yafa The animation CHB will be fadet out! {wftut:halve_size/results/chb_fade.yafa} Variable: brightness Points: 3 Nr. 1: 0, 0 ... brightness of animation CHB. Nr. 2: 59, -10 Nr. 3: 60, -60 Interpolation: bezier In the processor we ... {ADD BALANCING} ... and make the following selections Balancing: {INPUT Stream} ... input picture {OUTPUT Stream} ... Output picture {alles auf 0} {BRIGHT brightness} ... Helligkeit der Anim CHA Now CONVERT. Congratulations! You just generated all the needed animations! Now lets add a small @{" Script " LINK Script} to play the animations. @ENDNODE @NODE Script "Script" We start the editor: {EDITOR} We add all the generated animations to the list. {ADD cha_wipe.yafa} {ADD cha.yafa} {ADD cha_rotate.yafa} {ADD cha_twirl.yafa} {ADD chab_wipe.yafa} {ADD chab_scale.yafa} {ADD chab_fade.yafa} {ADD chb.yafa} {ADD chb_fade.yafa} Using INFO we make some settings for every animation: {DISPLAY Zoomed} 2x2 zooming of the anims, or not. {BUFFERS 4} only 4 buffers, so we dont use too much memory Choose these settings for all animations. Now use {PLAY ALL} for playing the animations. Press {AMIGA M} and look at the memory. You should have some empty fast-memory, otherwise you should change your settings and use only 3 buffers for every animation! The zooming, decrunching etc. works faster in the FAST memory! Lets save the project! {PROJECT wftut:halve_size/Wildfire.prj} {SAVE} With the external @{" YAFA " link yp.guide/MAIN} Player we can now play this animations every time we want. Wildfire is not necessary for playing the animations! YP (the player) can be downloaded from the internet by everyone! {YP -batch wftut:halve_size/Wildfire.prj} Now you saw how to wor with some important functions of Wildfire. For learning more about this great program read the documenation and test the great possibilities of it! Thank you for using this tutorial! @ENDNODE @remark /*************************************************************/ @remark /* @remark Demos @remark */ @remark /*************************************************************/ @node Demos W K - A r t w o r k s in cooperation with since april 92 . ___ _ - the immortal force - . : /\ _ _ _ :_ __ ___ _ ___/| /_ \_______/\_____________/\_____/|____________/\ /\ | / \ \ __/ \ / ____/ .__|__ _ / / \ |/ \ \_ \/ \_____/.__/ \ | | / : / / \_/ \ \ .___/ | / \ |\/ |__/_ ___ / \ / / | | \ / \ |/ : \ .oO\ _____|\____/\_ /\_____|Oo\ _______/_______|\ _____/___ _ \/__ _ : \/_ :-Z!\/_ _ : : \/__ _ ----------------------------------------------------------------------------- INFECT A PART OF LIFE ELEMENTS - A RELIGION CAN'T DIE ! @{b} The following releases were made using Wildfire: @{ub} @{" Dataworld 1 " link dw1} @{" Wild Summer " link ws1} @{" Dataworld 2 " link dw2} @endnode @node dw1 Dataworld was released at The Party 1995 in Fredericia/Denmark. It finished second in the Wild Competition - a competition where no Hardware restrictions were given. With only 70 MB of (hard/cd)diskspace you will get a 10 MINUTE-FULL-SCREEN-VIDEO-SHOW that just needs an standard A1200 with 4 MB of Fast Ram to run. Dataworld consists of over 30 @{" YAFA " link yp.guide/MAIN} animations, all linked smoothly together using the great @{" Wildfire " link WildFire.guide/MAIN}. With the @{" YAFA " link yp.guide/MAIN} player all the animations are played without interruption, even on a standard 4x CD rom! Dataworld can be found on: Aminet CD 11 (everything archived) MagnaMedia Amiga Magazin CD 5/6 96 (run from cd) CU amiga coverdisk 04/96 (run from cd) Scene Storm CD 1 (run from cd, use the fix IFT-SFIX.lha) Remember to use the latest @{" YAFA " link yp.guide/MAIN} player on your amiga! You can get it from the Aminet or from different coverdisks. Dataworld is copyrighted to: WK-Artworks (animations, Wildfire concept) Smack/Infect (@{" YAFA " link yp.guide/MAIN} concept) DJ Mellow-Noise/Infect (music) Eksec/Infect (executive producing) @endnode @node ws1 WiLD SuMMeR was released at `The Summer Party 96` in Denmark. It finished second in the Wild Competition - a competition without any Hardware-restrictions. With only 30 MB Place on CD/HD you`ll get a 4 Minutes full-screen Video which runs on an - todays - standard A1200 (at least 4 MB Fast). WilD SuMMeR consists of over 20 @{" YAFA " link yp.guide/MAIN} Animations, which were created using the great Wildfire. Using the latest @{" YAFA " link yp.guide/MAIN} player you can watch the show even from a ZIP-Drive or a 4X Speed CD-Rom without any gaps between the animations. WiLD SuMMeR is available on: Aminet CD 13 (all animations archived) CU Amiga Cover CD (run from cd) MagnaMedia Amiga Magazin CD 3/4 97 (run from cd) WiLD SuMMeR copyrighted to: WK-Artworks (Animations, Wildfire concept) Smack/Infect (@{" YAFA " link yp.guide/MAIN} concept) DJ Mellow-Noise/Infect (Music) Eksec/Infect (Executive Producing) @endnode @node dw2 Dataworld 2 was released at The Party 1996 in Aars/Denmark. With 150 MB of (hard/cd)diskspace you will get a 12 MINUTE-FULL-SCREEN-VIDEO-SHOW that just needs an standard A1200 with 4 MB of Fast Ram to run. Dataworld 2 consists of over 30 @{" YAFA " link yp.guide/MAIN} animations, all linked smoothly together using the great @{" Wildfire " link WildFire.guide/MAIN}. With the @{" YAFA " link yp.guide/MAIN} player all the animations are played without interruption, even on a standard 6x CD rom! Dataworld 2 can be found on: MagnaMedia Amiga Magazin CD 3/4 97 (run from cd) Remember to use the latest @{" YAFA " link yp.guide/MAIN} player on your amiga! You can get it from the Aminet or from different coverdisks. Dataworld 2 is copyrighted to: WK-Artworks (animations, Wildfire concept) Smack/Infect (@{" YAFA " link yp.guide/MAIN} concept) DJ Mellow-Noise/Infect (music) Eksec/Infect (executive producing) @endnode @node PowerPlugs! @{b}PowerPlugs! - it's not a dream @{" Example " system "visage wf:PowerPlugs!.jpg"} @{ub} @{u}Introduction@{uu} PowerPlugs! are a special version of Wildfire's 3D-operators allowing the superposition of effects in the threedimensional space. For example after wrapping an image onto a cube a radial-wave could be applied to the cube. This is of course an incredible mega-feature many 3D-programs are missing. But many users may have no need for it because they have slow machines with only some memory or don't need any 3d-effect. So you have to register for the PowerPlugs!-package separately. The price is 50,00 DM or 40,00 US-$. I think this is quite fair for such unique features and makes it possible to keep the low price of the base-package. After registering you will receive an extended version of the "wildfire.library" which enables the handling of so-called "3D-temp-buffers". If you have installed the normal version of the library (registered or not) all 3D-operators are restricted to operate on image- buffers (STREAM and TEMP1, ..., TEMP8). After installing the extended PowerPlugs!-library four additional buffers can be used: TEMP3D1, ... TEMP3D4. @{u}Usage@{uu} The usage is quiet simple. If you specify a 3d-temp-buffer instead of an image the transformation is applied to a virtual object and not to an image. This means that all "final" transformation operations like rotating, scaling or adding light are not performed. 3d-temp-buffers can be specified both as input and output. Example: You want to linearcombine two simple waves. Add a Wave3D-effect and set the originX-value to 60. Set the output-buffer to TEMP3D1. Add a second Wave3D-effect and sets it's originX-value to 260. Set the input-buffer to TEMP3D1. So what happens ? The image is read and deformed by the first Wave3D-operator but not rotated, scaled or rendered. The result is read in by the second Wave3D-operator, deformed, rotated and rendered. @{u}Operators@{uu} The following operators support the PowerPlugs!-concept and can therefore combined in any manner: @{" Cube " link opCube } Wrap an image on a cube @{" Example " system "visage wf:doc/pictures/Cube.pic"} @{" Water " link opWater } Apply an anharmonic water-wave to an image @{" Example " system "visage wf:doc/pictures/Water.pic"} @{" Wave3D " link opWave3D } Apply a harmonic wave to an image @{" Example " system "visage wf:doc/pictures/Wave3D.pic"} @{" Wrap " link opWrap } Wrap the image on a sphere or a tube @{" Example " system "visage wf:doc/pictures/Wrap.pic"} You may ask "Only four of them ?". So have a look at the example-picture again and keep in mind that all parameters may be animated easily. @{" Example again " system "visage wf:PowerPlugs!.jpg"} @{u}Updates@{uu} The extension of this package depends on your feedback. If there are many registrations I will start to develop more complicated and incredible effects which will be available as free updates. @endnode